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

yxyvkwin  于 2023-10-17  发布在  React
关注(0)|答案(3)|浏览(108)

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

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

此外,当我使用历史。推状态是正确更新布使用下面的代码:

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

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

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

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

j13ufse2

j13ufse21#

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

sigwle7e

sigwle7e2#

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

wwtsj6pe

wwtsj6pe3#

history.replaceState(stateObj, title, [url])

window.history.replaceState(stateObj, title, [url])

其中,
1.stateObj 可以设置为null
1.title 可以是您想要在浏览器中显示的任何标题
1.url 可以是window.location.pathname

相关问题