未捕获的TypeError:(0,_reactRouter.withRouter)在反应路由器2.4.0中以编程方式导航到路由时不是函数

nbu*_*urk 7 javascript node.js reactjs react-router

我正在使用react-router 2.4.0并希望以编程方式链接到另一条路线(我在使用之前做了什么<Link>).

在这篇SO帖子中很好地解释了他们说2.4.x你应该使用装饰模式withRouter,所以我使用以下代码:

import {withRouter} from 'react-router' // further imports omitted


class CreateJobItemFormRaw extends React.Component {
  ...
}

const CreateJobItemForm = withRouter(CreateJobItemFormRaw)
export default CreateJobItemForm
Run Code Online (Sandbox Code Playgroud)

然后在其他文件中,我使用

import CreateJobItemForm from './CreateJobItemForm'
Run Code Online (Sandbox Code Playgroud)

但是,使用这种方法我的应用程序根本不再渲染和控制台输出:

CreateJobItemForm.js:76 Uncaught TypeError: (0 , _reactRouter.withRouter) is not a function
Run Code Online (Sandbox Code Playgroud)

谁能帮我解决这个问题?

cod*_*gle 6

我相信您实际上使用的是 react-router 2.4.0,但就我而言,值得仔细检查我的 package.json 是否确实执行了该版本。我修改了我的 package.json 如下:

"dependencies": {
  "react-router": "^2.4.0",
  ...
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。

  • 对我有用,谢谢!“npm update”命令还不够,我必须卸载react-router,然后执行“npm install react-router@2.8.1”以使其更新。 (2认同)