使用redux-persist重新补充草稿js EditorState

时间:2019-02-25 15:55:10

标签: javascript redux immutable.js draftjs redux-persist

我在我的React应用程序中使用draft-js,并且我使用redux-persist重新存储存储在localStorage中的状态。 我需要将我的EditorState存储在我的redux存储中,因为存储ContentState对我来说还不够:更改富文本编辑器样式的按钮并不位于真正的EditorState组件附近。我正在研究时这不是问题。 但是,当我需要使用redux-persist对数据进行补水时,就会存在问题:当我在创建EditorState时将其正确保存在我的redux存储中时,如下所示: enter image description here

当我重新加载页面并使redux-persist补水时,它看起来像这样:

enter image description here

我应该补充一点,就是我的状态中有一些不可变的Records,我需要解析它们,而当我用redux-persist对代码进行补水时,所有这些都需要解析,这是我使用的代码(我认为解决方案在那儿,但我找不到确切的位置

import storage from 'redux-persist/lib/storage';
import { createTransform } from 'redux-persist';
import Serialize from 'remotedev-serialize';
import Immutable, { Record } from 'immutable';

const ExampleRecord = Record({
  anyData: 'here'
}, 'ExampleRecord')
/* 
For info, here is how would look the state
const state = {
  example: {
    record: ExampleRecord(),
    editorState: EditorState.createEmpty()
  }
}
 */
const records = [
  ExampleRecord
]
const serializer = Serialize.immutable(Immutable, records);
const immutableTransform = createTransform(serializer.stringify, serializer.parse, {
  whitelist: ['example'],
});

export default {
  key: 'example',
  version: 0,
  storage,
  transforms: [immutableTransform],
};

0 个答案:

没有答案