有onChange事件,但是当carret移动或导航(箭头等)按钮被按下时它也会发生.
我想检测内容是否已更改.基本上我只需要在第一次发生变化时检测到这一次.愚蠢的方式"比较内容"可能在这里工作,但这是一种反模式,因为这项任务资源太昂贵了.
由于Draft使用了不可变的数据结构,因此它不必是那么重的资源 - 比较引用应该足够了:
onChange(newEditorState) { const currentContent = this.state.editorState.getCurrentContent() const newContent = newEditorState.getCurrentContent() if (currentContent !== newContent) { // Content has changed } }