我在更新组件时遇到了噩梦。
我正在使用图表库https://www.gitbook.com/book/projectstorm/react-diagrams/details
创建链接在一起的节点负载。
在我正在使用https://github.com/clauderic/react-sortable-hoc
的节点上这将创建一个可排序的实体列表。
实体中有输入字段。每次我单击一个字段输入文本时,图表似乎正在更新,然后节点会更新,我会失去对该字段的关注。
当可排序列表发送数据时,我在节点中使用shouldComponentUpdate
并设置了一个标志,以便在接收数据时停止更新,这适用于第一个字母,但后来我立即失去焦点。
有什么方法可以阻止父级更新子级,或者保持焦点,这样我可以在更新节点时继续输入?
答案 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})
}