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

Sag*_*che 8 javascript reactjs react-router

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

<Link to={{
        pathname: "my-home-page",
        search: '?query=abc',
        state: { isActive: true }
}}>Go to Home</Link>
Run Code Online (Sandbox Code Playgroud)

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

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

但是,当我在 javascript 中使用 history.replace 时,我无法更新状态。我正在尝试下面的代码,但它不起作用。

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

有谁知道我做错了什么?为什么我的状态在重定向时没有更新history.replace

jor*_*edo 8

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


小智 5

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