Uncaught TypeError: (0, _reactRouter.withRouter) не является функцией при навигационной маршрутизации программным способом в agent-маршрутизаторе 2.4.0

Я использую react-router 2.4.0 и хочу ссылаться на другой маршрут программно (что я сделал до использования <Link>).

В этом SO post он хорошо объяснил, где говорится 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

Может ли кто-нибудь помочь мне решить эту проблему?

Ответ 1

Я верю, что вы на самом деле используете response-router 2.4.0, но в моем случае стоит дважды проверить, что мой пакет .json действительно применял эту версию. Я изменил свой пакет .json как таковой:

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

Надеюсь, что это поможет.

Ответ 2

В комментарии к другому ответу, который вы связали с этим вопросом, и сказали, что вы пытаетесь перемещаться с помощью реактивного маршрутизатора 2.4+. Попробуйте указать спецификации PropType в файле и посмотреть, дает ли это какие-либо предупреждения. Например:

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

Ответ 3

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

react-router v4.x