让 redux-persist 在数据恢复时通知我
Posted
技术标签:
【中文标题】让 redux-persist 在数据恢复时通知我【英文标题】:Make redux-persist to notify me when data are restored 【发布时间】:2021-12-15 01:59:40 【问题描述】:我有大量数据使用 React persist 存储在本地存储中。我需要知道何时在我的减速器中恢复持久数据(当应用程序加载时)。我需要验证数据版本并且需要生成查找对象(redux-storage 我们无法存储,可能是因为它有大约 65405 条记录/字段)。
无论如何,我想知道 react-persist 何时加载我的数据,以便我可以使用它们。我如何做到这一点?
【问题讨论】:
我猜你可以使用 redux-persist 中的useTransform
在此处查看文档:github.com/rt2zz/redux-persist#transforms
【参考方案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)
现在,您保存的数据(使用持久化器)将是有效的。
【讨论】:
以上是关于让 redux-persist 在数据恢复时通知我的主要内容,如果未能解决你的问题,请参考以下文章
在应用程序启动时重置减速器状态,同时使用 redux-persist 保持状态
在 iOS 设备上使用 Redux-Persist 和 React Native 时崩溃