如何在react-router中更新 history.replace 上的路由器状态?

IT技术 javascript reactjs react-router
2021-05-04 10:53:18

我的react-router具有状态isActive(boolean)值。当我使用 Link 组件重定向到不同的路由时,我可以按如下方式更新状态并且它工作正常:-

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

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

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个回答

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

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