Невозможно обновить состояние с помощью editorState с сервера в ReactJs для draftJs

Я реализовал редактор форматированного текста для React с поддержкой draftJs.

Я отправляю данные editorState на сервер после преобразования в необработанные данные и преобразования их в строку. Это хорошо работает для рендеринга в интерфейсе пользователя.

Теперь я хочу взять эти данные и обновить ими editorState. Итак, пользователь может редактировать текст с доступными данными.

Я не знаю, почему это не работает. Помогите, пожалуйста. Я не понимаю, что мне делать.

Мой код: импорт зависимостей

import { Editor } from "react-draft-wysiwyg";
import { EditorState, ContentState, convertFromRaw, convertToRaw } from "draft-js";
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";

 

Начальное состояние:

const [editorState, setEditorState] = useState(() =>
    EditorState.createEmpty()
  );

Пытаюсь отредактировать:

      setEvent(current);
      const data = JSON.parse(current.description);
      // EditorState.createWithContent(convertFromRaw(data));
      setEditorState(EditorState.createWithContent(ContentState.createFromText('Hello world')));

     // EditorState.createWithContent(convertFromRaw(JSON.parse(current.description)));

      // convertToRaw(JSON.parse(editorState.getCurrentContent()));
      // const state = current.description;

      // As per draft.js docs, I didn't understand the syntax
      // convertFromRaw(rawState: state): ContentState

      // EditorState.createWithContent(JSON.parse(current.description));
      
      // setEditorState(JSON.parse(current.description));

Все это пробовал. Но ничто не обновляет editorState до current.description. Примечание. current.description - это строка JSON, содержащая необработанные данные объекта.

Ресурсы: createwithcontent

постоянное состояние reactrocket


person Chetan Kumar    schedule 23.09.2020    source источник
comment
Пожалуйста, добавьте свое предложение по редактированию заголовка этого вопроса. Если вы думаете, что это неуместно.   -  person Chetan Kumar    schedule 23.09.2020


Ответы (1)


Я решил проблему. Официальные документы DraftJs были немного запутанными. Там должно быть несколько примеров. Так что его могут получить начинающие и средние разработчики.

Я сделал это:

setEditorState(EditorState.createWithContent(convertFromRaw(JSON.parse(current.description))));

Я надеюсь, что мои усилия будут полезны другим, и им не нужно тратить свое время, как я.

person Chetan Kumar    schedule 23.09.2020