当网页在react-reducer中刷新时,react-redux会刷新商店值吗?

时间:2019-06-24 11:13:27

标签: reactjs redux react-redux

我正在使用react-redux,当我在化简器中刷新网页状态时消失了。这是我的代码或化简器在React中的问题吗?这样,当我们刷新页面时是否还有其他方法可以保留状态

3 个答案:

答案 0 :(得分:1)

您应该使用localStoragesessionStorage。在刷新页面后清除您的商店。 在浏览器中打开项目时,您可以使用history.push更改路线,并且在这种情况下不会丢失存储。

localStorage和sessionStorage是保存数据的最佳方法。

您可以在localStorage中设置任何内容,并将组件构造器中的数据用于初始状态。

constructor(props) {
  super(props);
  this.state = {
    products: JSON.parse(localStorage.getItem('all-products')) || []
  }
}

,当您想对产品进行一些更改时,可以将回调状态用作第二个参数:

this.setState({products: someChangesInProductsList}, state => {
  localStorage.setItem('all-products', JSON.stringify(state.products))
})

此外,您可以使用history.push将数据发送到下一条路线,如下所示:

this.props.history.push({
    pathname: '/test',
    state: data
})

并使用this.props.history.location.state在下一条路由中的componentDidMount中获取数据。

答案 1 :(得分:1)

是的,Redux以这种方式工作。

每当网页重新加载时,缓存都会被清除,并且redux状态也会被清除。

数据持久化可以通过:-

完成
  1. Local Storage:-将持续到未清除缓存为止
  2. Session Storage:-将持续到会话存在。

  3. 您还可以使用redux persist来保持自己的redux状态

答案 2 :(得分:0)

是的,Redux以这种方式工作,当您刷新页面时,状态消失了 如果要保留一些数据,可以使用本地存储或会话存储