React & Draft.js - convertFromRaw не работает
Я использую Draft.js для реализации текстового редактора. Я хочу сохранить содержимое редактора в БД, а затем извлечь его и снова добавить в редактор, например, при повторном посещении страницы редактора.
Во-первых, это соответствующий импорт
import { ContentState, EditorState, convertToRaw, convertFromRaw } from 'draft-js';
Как я сохраняю данные в БД (находится в родительском компоненте)
saveBlogPostToStore(blogPost) {
const JSBlogPost = { ...blogPost, content: convertToRaw(blogPost.content.getCurrentContent())};
this.props.dispatch(blogActions.saveBlogPostToStore(JSBlogPost));
}
Теперь, когда я проверяю БД, я получаю следующий объект:
[{"_id":null,"url":"2016-8-17-sample-title","title":"Sample Title","date":"2016-09-17T14:57:54.649Z","content":{"blocks":[{"key":"4ads4","text":"Sample Text Block","type":"unstyled","depth":0,"inlineStyleRanges":[],"entityRanges":[]}]},"author":"Lukas Gisder-Dubé","__v":0,"tags":[]}]
Пока все хорошо, я думаю, я попробовал кое-что еще, и Объект в Базе данных определенно преобразован. Например, когда я сохраняю содержимое без вызова метода convertToRaw (), появляется гораздо больше полей.
Установка данных как нового EditorState
Чтобы извлечь данные из БД и установить их как EditorState, я также много пробовал. Следующее мое лучшее предположение:
constructor(props) {
super(props);
const DBEditorState = this.props.blogPost.content;
console.log(DBEditorState); // logs the same Object as above
this.state = { ...this.props.blogPost, content: EditorState.createWithContent(
convertFromRaw(DBEditorState)
)};
}
При рендеринге компонента я получаю следующую ошибку:
convertFromRawToDraftState.js:38 Uncaught TypeError: Cannot convert undefined or null to object
Любая помощь с благодарностью!