7

我正在使用 Facebookdraft-js来创建所见即所得。我正在尝试使用 native 将 HTML 转换为 editorState convertFromHtml。但它无法识别img标签。

import draftJs from 'draft-js'
const blocksFromHTML = convertFromHTML("<img src='some/img.png' />", draftJs.getSafeBodyFromHTML, draftJs.DefaultDraftBlockRenderMap);
const contentState = draftJs.ContentState.createFromBlockArray(blocksFromHTML);
editorState = draftJs.EditorState.createWithContent(contentState);

这样做会完全删除图像。有任何想法吗?

4

2 回答 2

2

在 draft-js 0.10.0 中使用 convertFromHTML 的示例应该可以工作(代码被我简化了一点):

      const sampleMarkup = '<img src="image.png" />';

      const blocksFromHTML = convertFromHTML(sampleMarkup);
      const state = ContentState.createFromBlockArray(
        blocksFromHTML.contentBlocks,
        blocksFromHTML.entityMap,
      );

      this.state = {
        editorState: EditorState.createWithContent(state),
      };
于 2017-03-18T18:46:01.063 回答
1

Mikhail Khazov 解决方案部分正确,我必须将 img 标签添加到图形标签中,这应该可以解决问题

于 2018-07-17T03:27:42.667 回答