关于react shouldComponentUpdate 什么时候重新render的问题
背景:
将cytoscape(关系图插件)单独放在一个文件中,如下:
export default class Cytoscape extends React.Component {
componentDidMount() {
}
shouldComponentUpdate(nextProps) {
let prevState = this.props;
let nextState = nextProps;
console.log("nextProps:",Immutable.fromJS(prevState.data).equals(Immutable.fromJS(nextProps.data)));
if (!Immutable.fromJS(prevState.data).equals(Immutable.fromJS(nextProps.data))) {
return true
}else{
return false
}
}
render() {
...
}
在shouldComponentUpdate方法中,判断关系图的数据是否改变,改变了就从新渲染,不改变就不重新渲染。
问题:
因为这个关系图上的节点用户可以随便拖动位置,现在在右上角加一个 还原 的按钮,但是点击这个还原按钮,data也没有改变...导致关系图并没有重新渲染达到还原的效果...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是不是可以点击还原按钮的时候,改变一下state,在shouldComponentUpdate里面不止做props变化的检测,也考虑state的变化。