我的反应路由器具有状态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
答案 0 :(得分:5)
试试history.replace({ pathname: 'home', search: '?query=abc', state:{isActive: true}});
答案 1 :(得分:1)
路由器是什么版本? 在History API中,当我使用它时,第一个参数是路径名(没有对象,只有字符串),第二个参数是状态。