我使用的是react-router,因此我将<Link />组件用于整个应用程序中的链接,在某些情况下,我需要根据用户输入动态生成链接,因此需要类似的内容 window.location,但无需刷新页面。
<Link />
window.location
我发现了这个小笔记-(https://github.com/rackt/react- router/issues/835)-我尝试使用,this.context.router.transitionTo(mylink)但是上下文有问题…
this.context.router.transitionTo(mylink)
这导致我(https://github.com/rackt/react- router/issues/1059),但是上下文返回并且对象为空,所以当我尝试做类似的事情时:this.context.router.transitionTo(mylink);我得到Cannot read property 'transitionTo' of undefined(如果我尝试做类似set的事情) this.context =构造函数中的上下文)。
this.context.router.transitionTo(mylink);
Cannot read property 'transitionTo' of undefined
不要拖延,但我也对上下文弄得一头雾水,因为它仍在进行中,因此没有明确记录,因此我已经读过。
有没有人遇到过类似的问题?
在这里找到解决方案:https : //github.com/rackt/react-router/issues/975,在这里:https : //github.com/rackt/react- router/issues/1499
在构造函数中需要:
class SidebarFilter extends React.Component { constructor(props, context) { super(props, context);
还需要添加一个静态属性:
SidebarFilter.contextTypes = { router: React.PropTypes.func.isRequired };
然后我可以打电话给:
this.context.router.transitionTo(/path-to-link);