Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在基于js的草稿编辑器中上载和渲染图像_Javascript_Reactjs_Draftjs - Fatal编程技术网

Javascript 在基于js的草稿编辑器中上载和渲染图像

Javascript 在基于js的草稿编辑器中上载和渲染图像,javascript,reactjs,draftjs,Javascript,Reactjs,Draftjs,我正在尝试创建一个简单的编辑器来编写故事情节。现在,我可以在编辑器中显示html标记,其中粗体文本以粗体等形式显示。我也可以将html格式的数据发送到服务器,但我无法在编辑器中显示图像,也无法在编辑器中上载图像。我已经为它创建了一个代码沙盒。这里是链接 代码行有点大。这就是为什么我在codesandbox中发布代码,在那里你也可以看到演示 有谁能帮我做到这一点吗 我最初发布了我的答案 为了您的方便,我复制了以下内容: 在检查Draft.js源代码后,花了一段时间研究如何插入图像 inse

我正在尝试创建一个简单的编辑器来编写故事情节。现在,我可以在编辑器中显示html标记,其中粗体文本以粗体等形式显示。我也可以将html格式的数据发送到服务器,但我无法在编辑器中显示图像,也无法在编辑器中上载图像。我已经为它创建了一个代码沙盒。这里是链接

代码行有点大。这就是为什么我在codesandbox中发布代码,在那里你也可以看到演示


有谁能帮我做到这一点吗

我最初发布了我的答案

为了您的方便,我复制了以下内容:


在检查Draft.js源代码后,花了一段时间研究如何插入图像

  insertImage = (editorState, base64) => {
    const contentState = editorState.getCurrentContent();
    const contentStateWithEntity = contentState.createEntity(
      'image',
      'IMMUTABLE',
      { src: base64 },
    );
    const entityKey = contentStateWithEntity.getLastCreatedEntityKey();
    const newEditorState = EditorState.set(
      editorState,
      { currentContent: contentStateWithEntity },
    );
    return AtomicBlockUtils.insertAtomicBlock(newEditorState, entityKey, ' ');
  };
然后你可以用

const base64 = 'aValidBase64String';
const newEditorState = this.insertImage(this.state.editorState, base64);
this.setState({ editorState: newEditorState });
对于渲染图像,可以使用

现场演示:

该演示插入了一个Twitter徽标图像


如果要插入本地文件中的图像,可以尝试使用
FileReader
API获取该base64

要了解如何获取base64,很简单,请检查

现场演示:

现在继续把它们放在一起,你们可以从本地文件上传图片了

将uploadEnable设置为true 并调用uploadCallBack
您尝试了什么?我已经在沙箱中发布了。我是说您在draftjs中显示图像时做了什么?我使用了CompositedCorator。我还需要做更多的事情吗?你能帮我一下吗?我没找到。我从第三天就开始尝试了