小编典典

如何使用react-router和ES6类模拟window.location

reactjs

我使用的是react-router,因此我将<Link />组件用于整个应用程序中的链接,在某些情况下,我需要根据用户输入动态生成链接,因此需要类似的内容 window.location,但无需刷新页面。

我发现了这个小笔记-(https://github.com/rackt/react-
router/issues/835)-我尝试使用,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
=构造函数中的上下文)。

不要拖延,但我也对上下文弄得一头雾水,因为它仍在进行中,因此没有明确记录,因此我已经读过。

有没有人遇到过类似的问题?


阅读 338

收藏
2020-07-22

共1个答案

小编典典

在这里找到解决方案: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);
2020-07-22