未捕获的TypeError:无法读取属性' history'未定义的

时间:2017-06-13 07:45:23

标签: reactjs react-router

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

如果需要,我会附上我的所有组件。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:3)

如果你想使用这个

var href = this.context.router.history.createHref(typeof to === 'string' ? { pathname: to } : to);

您需要在组件中注册路由器,如下所示 在您的组件中放置此代码

 static contextTypes = { 
   router: React.PropTypes.object 
}