пересоздайте draft-js EditorState с помощью redux-persist - PullRequest
0 голосов
/ 25 февраля 2019

Я использую draft-js в своем приложении React, и я использую redux-persist для регидратации своего состояния, хранящегося в localStorage.Мне нужно хранить свой EditorState в моем хранилище приставок, потому что мне недостаточно хранения ContentState: кнопки для изменения стилей моего редактора форматированного текста не расположены рядом с реальным компонентом EditorState.Это не проблема, пока я работаю над этим.Однако проблема возникает, когда мне нужно повторно гидратировать свои данные с помощью redux-persist: пока EditorState должным образом сохраняется в моем хранилище редуксов при его создании, выглядит так: 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],
};
...