这可能是一个愚蠢的问题,但是我似乎无法弄清楚如何使用Draft.js并正确获取要拖放的文本。
这是我一直关注的文档部分(handleDrop): https://draftjs.org/docs/api-reference-editor.html
首先,我在React组件中使用这样的DraftJS:
<Editor editorState={this.state.editorState} onChange={this.onControlChanged} handleDrop={this.handleDrop}></Editor>
然后,当它发生变化时,就会触发:
onControlChanged = async (editorState) => {
this.setState({
editorState: editorState
});
}
我也有这段代码,它设置了我要删除的dataTransfer:
dragField(e: React.DragEvent<HTMLDivElement>, field: Field) {
e.dataTransfer.setData(
"text/html",
'[-' + field.text + '-]'
);
return false;
}
现在,这是我不确定的部分-但无法获得有关如何正确使用它的清晰文档:
handleDrop = (selectionState, dataTransfer, type) => {
this.setState(prevState => ({
...prevState,
editorState: EditorState.push(prevState.editorState, selectionState, 'insert-fragment')
}));
}
它显然不太喜欢...
我在某处可以参考更多文档,还是有人知道我可以/应该如何实现?