【问题标题】:Make redux-persist to notify me when data are restored让 redux-persist 在数据恢复时通知我
【发布时间】:2021-12-15 01:59:40
【问题描述】:
我有大量数据使用 React persist 存储在本地存储中。我需要知道何时在我的减速器中恢复持久数据(当应用程序加载时)。我需要验证数据版本并且需要生成查找对象(redux-storage 我们无法存储,可能是因为它有大约 65405 条记录/字段)。
无论如何,我想知道 react-persist 何时加载我的数据,以便我可以使用它们。我如何做到这一点?
【问题讨论】:
标签:
reactjs
react-redux
local-storage
persist
【解决方案1】:
redux-persis中有两个特殊动作:PERSIST和REHYDRATE。
PERSIST 动作已被调度,然后使用REHYDRATE,store 的保存对象将被加载并注入到当前的 redux 存储中。因此,您可以将它们导入您的reducer 函数并注意persisting 状态。
您需要先对数据进行操作,然后再用持久化器重新水合它们,但我建议采用更简单的方法来处理这种情况。
例如有一个data值(包含65405条记录):
case DATA_ARRIVED_SUCCESSFULLY:
return {
...state,
data: actin.payload
}
现在,在持久化之前和将有效负载放在data 之前,您可以检查并验证您的数据:
const sampleValidatorData = (myData) => {
// do something with myData
}
case DATA_ARRIVED_SUCCESSFULLY:
return {
...state,
data: sampleValidatorData(actin.payload)
}
现在,您保存的数据(使用持久化器)将是有效的。