父更新时,React Stop组件更新

时间:2018-04-04 00:25:04

标签: reactjs

我在更新组件时遇到了噩梦。

我正在使用图表库https://www.gitbook.com/book/projectstorm/react-diagrams/details

创建链接在一起的节点负载。

在我正在使用https://github.com/clauderic/react-sortable-hoc

的节点上

这将创建一个可排序的实体列表。

实体中有输入字段。每次我单击一个字段输入文本时,图表似乎正在更新,然后节点会更新,我会失去对该字段的关注。

当可排序列表发送数据时,我在节点中使用shouldComponentUpdate并设置了一个标志,以便在接收数据时停止更新,这适用于第一个字母,但后来我立即失去焦点。

有什么方法可以阻止父级更新子级,或者保持焦点,这样我可以在更新节点时继续输入?

1 个答案:

答案 0 :(得分:1)

可以做下面的事情。不是100%肯定它会按你的需要工作。但试试吧。 在键入完成时(当丢失文本框的焦点时)必须调用textBoxLostFocus()

constructor(){
   super()
   this.state={
      diagramUpdateFlag: false
   }
}

shouldComponentUpdate(nextProps,nextState){
   if(this.state.diagramUpdateFlag === nextState.diagramUpdateFlag){
      return false
   } else {
      return true
   }
}

textBoxLostFocus(){
   this.setState({diagramUpdateFlag: !this.state.diagramUpdateFlag})
}