突变redux保持开发状态

时间:2019-03-10 06:08:55

标签: reactjs react-native redux redux-persist

我正在使用redux-persist将我的redux阶段保存在react native中的AsyncStorage上。由于它是一个新应用程序,因此我会不断更改redux初始状态的结构,以适应新功能或修复。但是,当我重新加载应用程序时,它会被redux-persist(rehydration)保留的旧状态所覆盖。

如何让redux-persist保存新的initialState,而不必在开发环境中编写迁移?

2 个答案:

答案 0 :(得分:0)

我添加了一个组件功能,该功能可以清除持久状态并立即重新加载应用程序。该功能由仅在开发环境中可用的按钮调用。

import { persistor } from '../../AppContainer' // adjust this line for you
import RNRestart from 'react-native-restart'

clearPersistedState = () => {
    persistor.purge()
    RNRestart.Restart() // reload the React Native Bundle
}

必须立即重新加载应用程序,因为如果在清除持久状态后调用了任何redux动作,则redux-persist将再次保存旧的initialState(仍在RAM中)。

答案 1 :(得分:0)

如果您试图容纳新功能并且不删除视图所需的内容,则将automergelevel设置为2,因为它将仅覆盖现有键,并且您添加的任何新内容都将使用您提供的initialState添加。