Javascript 反应路由器链接未在上下文中接收路由器
我正在使用React和React路由器创建一个单页javascript应用程序。每个页面都是它自己的组件。在一个页面上,我能够成功地创建一个链接组件,并按预期工作。在另一页上,我发现以下错误:Javascript 反应路由器链接未在上下文中接收路由器,javascript,reactjs,react-router,Javascript,Reactjs,React Router,我正在使用React和React路由器创建一个单页javascript应用程序。每个页面都是它自己的组件。在一个页面上,我能够成功地创建一个链接组件,并按预期工作。在另一页上,我发现以下错误: Warning: Failed Context Types: Required context `router` was not specified in `Link`. Uncaught TypeError: Cannot read property 'makeHref' of undefined 以
Warning: Failed Context Types: Required context `router` was not specified in `Link`.
Uncaught TypeError: Cannot read property 'makeHref' of undefined
以下是我设置路线的文件:
以下是链接工作的组件(在TeamRow组件中):
下面是链接不起作用的组件(第31行):
我在整个应用程序中记录了上下文以检查它们,只有在应用程序组件中它才不是空对象。我的链接不起作用的TeamPage组件有什么问题?为什么主页组件中的上下文是空的,但链接可以工作?尝试将您的要求更改为
// remove the react-router require
var {Link} = require('react-router');
或
我注意到您正在传递
团队
,但使用的是this.props.teamName
。您能否在TeamPage组件中成功创建链接?react router的哪个版本?您应该在使用它的每个组件中指定contextType:router。代码在我看来很好。除非明确使用this.context.router
,否则不需要指定contextTypes
;上下文仍将传递给声明上下文类型的子级(例如链接
)。你有没有一个小例子重现了我们可以运行/实验的问题?@pherris是的,在链接工作的第二个文件的第72行properly@Colin我使用的是版本0.13.3,我尝试在所有组件中指定contextType,但没有效果
// keep the react-router require
var Link = ReactRouter.Link;