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