【发布时间】:2019-11-13 13:11:23
【问题描述】:
我在网上商店工作。我有一个订单缩减器,我可以在其中保留我的订单。页面刷新后,我的商店变空(这很明显)。主要想法是将我的订单保存一段时间(例如,20 分钟)。另外,我只想保存我的商店(订单状态)。所以,我决定将我的状态保存到本地存储
但这里有个技巧。如何从架构和模式方面正确地做到这一点?我有几个想法:
- 使用
store.subscribe()订阅我的商店,并在每次商店更改时重写我的本地存储。这会有点奇怪,因为我需要使用解析我的商店,取一部分并推送到本地存储。此外,每次更改都会调用我的回调,这可能会影响生产力。 -
在调度程序中正确执行(我想这是一种反模式):
const addToOrder = orderItem => ({ type: actionTypes.ADD_TO_ORDER, payload: orderItem }); export const addItemToOrder = orderItem => dispatch => { // localstorage.setItem() ... dispatch(addToOrder(orderItem)); } - 使用类似的库
https://www.npmjs.com/package/redux-persist
https://www.npmjs.com/package/redux-localstorage
https://www.npmjs.com/package/redux-localstorage-simple
但是在这种情况下,如何在关闭标签后 20 分钟内清除我的本地存储?
那么,如何正确地保持我的状态以及如何在一段时间内清除本地存储?
提前感谢您的帮助!
【问题讨论】:
标签: javascript reactjs redux react-redux local-storage