【发布时间】:2020-10-23 21:20:09
【问题描述】:
我在通过 react-router-dom 元素 NavLink 传递更新状态时遇到问题。
这是组件1的示例代码:
...
this.state = {
toggle: true;
}
this.handleClick = () => {
this.setState(prevState => {toggle: !prevState.toggle});
}
...
render() {
{ toggle } = this.state;
return (
<div>{toggle}</div>
<NavLink to={{pathname: "component2path", toggle}}>
<div role="presentation" onClick={this.handleClick}>click</div>
</NavLink>
);
}
所以点击后我可以看到切换真/假的 div 变化。
这是组件2的示例代码:
ComponentDidUpdate(prevProps,prevState) {
{ toggle } = this.props.location;
{ toggleOld } = prevProps.location;
console.log(toggle,toggleOld); //this never change
//i want to achieve this
if(toggle === toggleOld) {
doAction(); //do something;
}
}
问题是我似乎无法在道具中反映状态变化。
有人可以帮忙吗?我有点坚持这个太久了。
【问题讨论】:
-
你只是想通过路由推送发送一些状态到新路径吗?
-
是的,这就是我发现的,道具是如何通过 react-router-dom navLink 发送的