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