我的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
重定向时没有更新
3条答案
按热度按时间j13ufse21#
试试
history.replace({ pathname: 'home', search: '?query=abc', state:{isActive: true}});
sigwle7e2#
路由器的版本是什么?在History API中,当我使用它时,第一个参数是路径名(没有对象,只有字符串),第二个参数是状态。
wwtsj6pe3#
或
其中,
1.stateObj 可以设置为
null
1.title 可以是您想要在浏览器中显示的任何标题
1.url 可以是
window.location.pathname