React router 通过上下文将路由器传递给子组件
我试图通过上下文传递路由器,这样我就可以在子React.Component上调用navigateTo 目的:React router 通过上下文将路由器传递给子组件,react-router,React Router,我试图通过上下文传递路由器,这样我就可以在子React.Component上调用navigateTo 目的: 成功登录后,我需要离开登录。 策略: 1.将路由器向下传递到childe登录组件。 2.成功登录时,调用路由器上的navigateTo('/startpage')传递 我在包含运行的页面/组件上有以下内容: Router.run(routes, function (Handler) { React.render(<Handler/>, document.body);
成功登录后,我需要离开登录。
策略:
1.将路由器向下传递到childe登录组件。
2.成功登录时,调用路由器上的navigateTo('/startpage')传递 我在包含运行的页面/组件上有以下内容:
Router.run(routes, function (Handler) {
React.render(<Handler/>, document.body);
});
对于childContextTypes:childContextTypes = {
router: React.PropTypes.object.isRequired
};
对于孩子本身:contextTypes = {
router: React.PropTypes.object.isRequired
};
如果我使用的是“router:React.PropTypes.string.isRequired”
,则上下文设置工作正常。注意字符串,但在使用object I get时:
但当我尝试使用object时,会出现错误:
警告:失败的上下文类型:为“NavItemLink”提供的“object”类型的上下文“router”无效,应为“function”。检查的渲染方法
以及:
未捕获类型错误:this.context.router.isActive不是函数
欢迎任何帮助?我的解决方案是在父级上创建一个函数,并将其与上下文一起传递 家长:
contextTypes = {
router: React.PropTypes.func.isRequired
};
和子组件:childContextTypes = {
router: React.PropTypes.func.isRequired
};
如果您只是传递
路由器
,请查看使用路由器将组件包装在更高阶组件中
react router
存储库中的许多示例都使用了此选项,下面是一个示例:
您可以发布适用的路线吗?您是否考虑过在父组件上创建一个函数,如
loginsucessful()
,用于处理路由器转换,并通过props将其传递给子组件?您好。是的,那正是我所做的:-)无论如何,谢谢。我会点击这个作为有用的-我不知道如果给任何点,但仍然。
childContextTypes = {
router: React.PropTypes.func.isRequired
};