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

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

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

【问题讨论】:

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

标签: reactjs react-router state react-props pathname


【解决方案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}} />
              )} /> 

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-30
      • 2022-07-12
      • 1970-01-01
      • 2011-10-14
      • 1970-01-01
      • 2019-10-09
      相关资源
      最近更新 更多