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