Как вставить HTML в Draft.js? - PullRequest
0 голосов
/ 12 мая 2018

Я использую редактор Reaction-draft-wysiwyg, который построен поверх Draft.js. Я пытаюсь понять, как программно вставить HTML, например:

<h1>Hey</h1>

Пока что самое близкое, что я получил, - это использование метода insertText () модуля Modifier. Пример:

insert = ()=>{
  const editorState = this.state.editorState;

  const selection = editorState.getSelection();

  const contentState = editorState.getCurrentContent();

  const ncs = Modifier.insertText(contentState, selection, "<h1>Hey</h1>",);

  const es = EditorState.push(editorState, ncs, 'insert-fragment');

  this.setState({editorState: es})
}

В результате вставляется литеральная строка, не является элементом HTML H1.

Как это можно сделать?

1 Ответ

0 голосов
/ 12 мая 2018

В плагине Editor-draft-wysiwyg editor docs здесь , в конце следует упомянуть, что используйте библиотеку HTML To DraftJS для преобразования простого HTML в содержимое редактора DraftJS ,

Плагин, созданный для работы с редактором Reaction-draft-wysiwyg.

Ссылка на плагин здесь

import { EditorState, ContentState } from 'draft-js';
import htmlToDraft from 'html-to-draftjs';

const blocksFromHtml = htmlToDraft(this.props.content);
const { contentBlocks, entityMap } = blocksFromHtml;
const contentState = ContentState.createFromBlockArray(contentBlocks, entityMap);
const editorState = EditorState.createWithContent(contentState);
...