【发布时间】:2021-05-29 04:08:07
【问题描述】:
所以我在我的 react-native 应用程序中使用 redux-persist 来保持状态并且一切正常。
对于 reducer,我使用 switch-case 来检查不同的动作类型,而对于默认值,我正在返回状态。
initialState = {
first: null,
second: null,
};
export default myReducer = (state = initialState, action) => {
switch (action.type) {
case ...:
... // Handling some cases which work fine
default:
return state;
}
};
这件事工作正常,但如果我在默认块中将state 替换为{...state},它不会保持状态。
现在我知道多少是 state = {...state} 那么为什么这不起作用。
这里是persistConfig;
import AsyncStorage from "@react-native-async-storage/async-storage";
const persistConfig = {
key: "root",
storage: AsyncStorage,
};
【问题讨论】:
-
我还没有研究持久化 redux,但据我了解,传播状态对象会创建一个新对象,redux 会比较两个对象并发现一些变化,所以它会保留新对象。
-
因此,在保留新数据后,为什么数据会被删除,因为新数据将包括旧状态的所有内容,因为我只是在复制它。如果我错了,请纠正我。
-
也许,您的持久性配置有问题(lib 的自述文件中的
persistConfig对象)。可以分享一下吗? -
编辑了我的问题
-
状态变成了什么?未定义?
标签: javascript react-native parsing redux-persist redux-reducers