我正在使用react-router v4.1.1,当我尝试使用Link组件时 - 我收到警告:
Failed context type: The context `router` is marked as required in `Link`,
but its value is `undefined`.
还有一个错误:
Uncaught TypeError: Cannot read property 'history' of undefined
错误出现在此字符串的链接组件中:
var href = this.context.router.history.createHref(typeof to === 'string' ? { pathname: to } : to);
为什么路由器未定义?
我在我的一个组件中导入BrowserRouter和Route,该组件仅负责在菜单中呈现所选页面。并且链接导入另一个组件,实际上是一个带有无序列表的Menu组件。
如果需要,我会附上我的所有组件。 谢谢你的帮助。
答案 0 :(得分:3)
如果你想使用这个
var href = this.context.router.history.createHref(typeof to === 'string' ? { pathname: to } : to);
您需要在组件中注册路由器,如下所示 在您的组件中放置此代码
static contextTypes = {
router: React.PropTypes.object
}