关于react shouldComponentUpdate 什么时候重新render的问题

发布于 2022-09-07 16:05:56 字数 792 浏览 18 评论 0

背景:
将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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寄风 2022-09-14 16:05:56

是不是可以点击还原按钮的时候,改变一下state,在shouldComponentUpdate里面不止做props变化的检测,也考虑state的变化。

shouldComponentUpdate(nextProps, nextState)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文