Draft.JS:检测内容变化的正确方法

Draft.JS: the proper way to detect content change

onChange 事件,但它也会在小车移动或导航(箭头等)按钮被按下时触发。

我想检测 内容 是否被更改。基本上我只需要在第一次发生变化时检测一次。愚蠢的方式 "compare content" 在这里可能行得通,但这是一种反模式,因为这个任务太耗费资源了。

由于 Draft 使用不可变数据结构,因此它不必占用大量资源——比较引用就足够了:

onChange(newEditorState) {
  const currentContent = this.state.editorState.getCurrentContent()
  const newContent = newEditorState.getCurrentContent()

  if (currentContent !== newContent) {
    // Content has changed
  }
}