【发布时间】:2015-06-19 21:27:09
【问题描述】:
我正在使用 React 和 react-router 创建一个单页 javascript 应用程序。每个页面都是它自己的组件。在一个页面上,我能够成功创建一个 Link 组件并且它按预期工作。在另一个页面上,我收到以下错误:
Warning: Failed Context Types: Required context `router` was not specified in `Link`.
Uncaught TypeError: Cannot read property 'makeHref' of undefined
这是我设置路线的文件:
这是链接起作用的组件(在 TeamRow 组件中):
这是链接不起作用的组件(第 31 行):
我记录了整个应用程序的上下文以检查它们,唯一不是空对象的情况是在 App 组件中。我在我的链接不起作用的 TeamPage 组件中做错了什么?为什么 HomePage 组件中的上下文为空,但 Link 有效?
【问题讨论】:
-
我注意到您传递了
team,但使用了this.props.teamName。能否在 TeamPage 组件中成功创建 Link? -
什么版本的 react-router?您应该在使用它的每个组件中指定 contextType: router。
-
代码对我来说看起来不错。你不需要指定
contextTypes,除非你明确使用this.context.router;上下文仍将传递给声明上下文类型的子项(例如Link)。你有一个小例子可以重现我们可以运行/实验的问题吗? -
@pherris yes 在第二个文件的第 72 行,链接正常工作
-
@Colin 我使用的是 0.13.3 版本,我尝试在所有组件中指定 contextType 但没有效果
标签: javascript reactjs react-router