如何在我的本机应用程序中仅使用redux persist仅用于一个reducer而不是导航reducer?

cod*_*z18 3 react-native redux

我正在使用Redux坚持使用我的商店来减速器.我的应用程序有两个Reducer导航和用户Reducer.我想只保留用户状态,但我必须根据redux persist的这种语法保持两个状态.

          import {persistStore, autoRehydrate} from 'redux-persist'
          const store = createStore(reducer, undefined, autoRehydrate())
          persistStore(store)
Run Code Online (Sandbox Code Playgroud)

我在create store中传递的reducer是combine reducers的对象.

问题: 我遇到的问题是当我退出我的应用程序时,因为导航状态现在也持续存在,我的应用程序打开了我退出应用程序的同一页面.

我在我的应用程序中使用redux进行导航实验,并希望仅保留用户状态.

Ori*_*ori 11

redux-persist v5

PersistConfig中设置黑名单/白名单,并在persistCombineReducers(第1个参数)中使用它:

const persistConfig = {
  key: 'root',
  blacklist: ['navigation'],
  storage,
}

const reducer = persistCombineReducers(persistConfig , reducers)
Run Code Online (Sandbox Code Playgroud)

redux-persist v4

persistStore可以将可选的配置对象作为第二个参数.在配置对象中,您可以定义要忽略的Reducer的黑名单,或者要包含的减少器的白名单(并忽略其余的).两者都接受一系列Reducer的键名.

您可以将navigation(或称为您的名称)减速器列入黑名单:

persistStore(store, { blacklist: ['navigation'] })
Run Code Online (Sandbox Code Playgroud)

  • 是否可以在特定reducer内黑/白列出特定字段?假设我想将我的App Reducer列入白名单,但是例如,我只想将用户电子邮件列入白名单? (2认同)