开发者问题收集

未捕获的类型错误:无法读取未定义的属性“history”

2017-06-13
1903

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

错误出现在此字符串的 Link 组件中:

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

为什么路由器未定义?

我在我的一个组件中导入了 BrowserRouter 和 Route,该组件仅负责呈现菜单中选定的页面。 并在另一个组件中导入 Link,该组件实际上是带有无序列表的菜单组件。

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

1个回答

如果您想使用这个

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

您需要按照以下方式将路由器注册到您的组件中 在您的组件中输入此代码

 static contextTypes = { 
   router: React.PropTypes.object 
} 
Chandrakant Thakkar
2017-07-19