使用redux-persist重新水化草稿js EditorState

问题描述 投票:1回答:1

我在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],
};
javascript redux immutable.js draftjs redux-persist
1个回答
0
投票

您找到解决方案了吗?

© www.soinside.com 2019 - 2024. All rights reserved.