仅保留 Reducer 中的某些字段

Tac*_*nol 6 javascript reactjs redux redux-form redux-persist

嗨,在我们的应用程序中,我们有一个减速器模式:

{
   data: //here we have our actual data
   fetching: // is it still fetching 
   intact: // has it been 'touched'
   error: //errors if need be
}
Run Code Online (Sandbox Code Playgroud)

此外,由于业务需求,我需要坚持一个 ReduxForm,它是它自己的蠕虫罐......

form: {
    Foobar: {
      values: {

      },
      initial: {

      },
      syncErrors: {

      },
      registeredFields: {

      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

正如您可能已经发现的那样,保留数据以外的任何内容都是没有意义的,但是 Redux-Persist 保留了整个 reducer。关于过滤和转换的例子有点……我觉得乏味,我一直在努力实现。寻找一个例子

Tac*_*nol 9

好的,所以这可以使用 redux-persist-transform-filter 这样的@NickHTTPS sugested:

import createFilter from 'redux-persist-transform-filter';

const saveSubsetFilter = createFilter('form', ['Foo.bar']);

const persistConfig = {
    key: 'form',
    storage,
    whitelist: ['form'],
    transforms: [saveSubsetFilter]
};

persistCombineReducers(persistConfig, { form: formReducer });
Run Code Online (Sandbox Code Playgroud)

奇迹般有效 :)