我正在使用react-redux,当我在化简器中刷新网页状态时消失了。这是我的代码或化简器在React中的问题吗?这样,当我们刷新页面时是否还有其他方法可以保留状态
答案 0 :(得分:1)
您应该使用localStorage
或sessionStorage
。在刷新页面后清除您的商店。
在浏览器中打开项目时,您可以使用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状态也会被清除。
数据持久化可以通过:-
完成Session Storage:-将持续到会话存在。
您还可以使用redux persist来保持自己的redux状态
答案 2 :(得分:0)
是的,Redux以这种方式工作,当您刷新页面时,状态消失了 如果要保留一些数据,可以使用本地存储或会话存储