刷新页面后如何保留props.location.state?(不使用本地存储)

Posted

技术标签:

【中文标题】刷新页面后如何保留props.location.state?(不使用本地存储)【英文标题】:How to keep the props.location.state after refreshing page?(without using local storagre) 【发布时间】:2019-06-21 06:36:42 【问题描述】:

我使用了这个链接,当我刷新页面 props.location.state === null 有什么解决方案可以在不使用本地存储的情况下刷新或收取新页面时将数据保留在 props.location.state 中?

<Link to= pathname: `/details/$imdbID`, state: this.props >

【问题讨论】:

如果你想在刷新过程中保持状态,你需要将它存储在 localStorage 并在组件安装时检索它,而不是通过 Link 状态传递它 【参考方案1】:

您必须将要保存的状态存储到本地存储中。

let savedState =  JSON.stringify(props.location.state)
localStorage.setItem('myState', savedState);

从本地存储中获取保存状态

let retrievedState = JSON.parse(localStorage.getItem('myState'));

【讨论】:

【参考方案2】:

无需将所需的数据存储在本地存储中,您可以在任何地方转储,无论是否刷新数据都将始终在此处,只是在路由中我们需要使用 propWhatever 示例:

<Route path="/details" render=(props)=> (
        
          <Details ...props   propWhatever=data />
          ) /> 

【讨论】:

以上是关于刷新页面后如何保留props.location.state?(不使用本地存储)的主要内容,如果未能解决你的问题,请参考以下文章

页面刷新后保留表格排序结果?

页面刷新后保留值

用JS怎么实现刷新页面后保留刷新前的页面上的数据显示

角度刷新后将数据保留在页面中

点击元素后javascript如何修改class并且刷新后保留样式?

页面刷新后保留选择复选标记