如何在React路由器上的history.replace上更新路由器状态?

时间:2018-12-05 07:45:10

标签: javascript reactjs react-router

我的反应路由器具有状态isActive(boolean)的值。当我使用链接组件重定向到其他路由时,我可以按以下方式更新其状态,并且可以正常工作:-

<Link to={{
        pathname: "my-home-page",
        search: '?query=abc',
        state: { isActive: true }
}}>Go to Home</Link>

另外,当我使用history.push状态时,使用以下代码正确更新bu:-

history.push({
               pathname: '/template',
               search: '?query=abc', 
               state: {
                isActive: true
               }
});

但是,当我在javascript中使用history.replace时,我无法更新状态。我正在尝试以下代码,但无法正常工作。

history.replace({ pathname: 'home', search: '?query=abc', isActive: true});

有人知道我在做什么错吗?为什么使用history.replace

重定向时我的状态没有更新

2 个答案:

答案 0 :(得分:5)

试试history.replace({ pathname: 'home', search: '?query=abc', state:{isActive: true}});

答案 1 :(得分:1)

路由器是什么版本? 在History API中,当我使用它时,第一个参数是路径名(没有对象,只有字符串),第二个参数是状态。