React Router:替换位置状态然后返回,位置状态未定义
Posted
技术标签:
【中文标题】React Router:替换位置状态然后返回,位置状态未定义【英文标题】:React Router: Replace location state then goBack, location state is undefined 【发布时间】:2020-05-08 03:35:55 【问题描述】:this.props.history.replace(
state:
from: 'dashboard'
);
this.props.history.goBack();
更新this.props.location.state
后使用this.props.history.goBack()
时this.props.location.state
的值是undefined
。但是
this.props.history.push(
pathname: '/',
state:
from: 'dashboard'
);
有效并保留this.props.location.state
的值。
知道如何更新this.props.location.state
然后使用this.props.history.goBack
?
【问题讨论】:
【参考方案1】:根据官方文档:
push(path, [state]) - (function) 将新条目推送到历史堆栈中 replace(path, [state]) - (function) 替换历史堆栈上的当前条目 go(n) - (function) 将历史堆栈中的指针移动 n 个条目 goBack() - (function) 等价于 go(-1) goForward() - (函数) 等价于 go(1)如果你想使用goBack()
,最好使用this.props.history.push()
为了更好地了解,您可以访问react-router-dom、history
【讨论】:
是的。但是使用push
代替goBack
会弄乱routing flow
,因为它会将一个新条目推送到历史堆栈中,而不是删除当前条目以返回到前一个条目。
我的 location.state 未定义。我在 history.replace() 中也包含了 state,它解决了我的问题。谢谢。以上是关于React Router:替换位置状态然后返回,位置状态未定义的主要内容,如果未能解决你的问题,请参考以下文章