reactRouter.withRouter)在以编程方式导航进行反应时不是函数

我正在使用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

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

import CreateJobItemForm from './CreateJobItemForm'

但是,通过这种方法,我的应用程序不再渲染任何东西,控制台输出:

CreateJobItemForm.js:76 Uncaught TypeError: (0 , _reactRouter.withRouter) is not a function

谁能帮我解决这个问题吗?


我相信你实际上使用了react-router 2.4.0,但在我的情况下,值得仔细检查一下,我的package.json实际上是否实施了该版本。 我修改了我的package.json,如下所示:

"dependencies": {
  "react-router": "^2.4.0",
  ...
}

希望这可以帮助。


在对此问题链接的另一个答案的评论中,并表示您正在尝试使用react-router 2.4+进行导航。 尝试并将PropType规范放入文件中,看看是否给出了任何警告。 例如:

// PropTypes
Example.propTypes = {
  router: React.PropTypes.shape({
    push: React.PropTypes.func.isRequired
  }).isRequired
};

import { withRouter } from 'react-router-dom'

react-router v4.x
链接地址: http://www.djcxy.com/p/52117.html

上一篇: reactRouter.withRouter) is not a function when navigating to route programmatically in react

下一篇: javascript