Draft.js在放置位置插入图像

我正尝试从js草稿编辑器外部删除图像,但它总是插入到编辑器中光标/选择的最后位置(如果未设置光标/选择,则插入到最后)。

这是我包裹draft-js-drag-n-drop-plugin

的地方
const droppableBlockDndPlugin = {
  ...blockDndPlugin,handleDrop: (
    selection,dataTransfer,isInternal,{getEditorState,setEditorState}
  ) => {
    const editorState = getEditorState();
    const raw = dataTransfer.data.getData('text');
    const data = raw ? raw.split(IMAGE_BLOCK_TYPE_SEPARATOR) : [];
    if (data.length > 1 && data[0] === IMAGE_BLOCK_TYPE_PURE) {
      const url = data[1];
      if (url) {
        const newState = imagePlugin.addImage(editorState,url);
        setEditorState(newState);
      }
    }

    return blockDndPlugin.handleDrop(selection,{
      getEditorState,setEditorState
    });
  }
};

基本上,我只是在使用handleDrop插入图像的基础imagePlugin.addImage发生之前做一些额外的逻辑。有没有办法将图像拖放到拖动位置?

mmaiyy02 回答:Draft.js在放置位置插入图像

实际上,这是一个非常明显的解决方案-您应该只使用传递的selection并使用它创建新状态,然后将图像添加到该新状态:

const newState = imagePlugin.addImage(EditorState.forceSelection(editorState,selection),url);
setEditorState(newState);
本文链接:https://www.f2er.com/3121358.html

大家都在问