Draft.JS:检测内容更改的正确方法

时间:2017-01-25 09:07:52

标签: reactjs draftjs

onChange事件,但当卡雷尔移动或导航(箭头等)按钮被按下时它也会触发。

我想检测内容是否已更改。基本上我只需要在第一次发生变化时检测到这一次。愚蠢的方式“比较内容”可能在这里工作,但这是一种反模式,因为这项任务资源太昂贵。

1 个答案:

答案 0 :(得分:8)

由于Draft使用了一个不可变的数据结构,因此它不必太大 - 比较引用应该足够了:

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

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