在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/網(wǎng)絡安全  HTML/ 關于react shouldComponentUpdate 什么時候重新rend

關于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方法中,判斷關系圖的數(shù)據(jù)是否改變,改變了就從新渲染,不改變就不重新渲染。
問題:
因為這個關系圖上的節(jié)點用戶可以隨便拖動位置,現(xiàn)在在右上角加一個 還原 的按鈕,但是點擊這個還原按鈕,data也沒有改變...導致關系圖并沒有重新渲染達到還原的效果...

回答
編輯回答
逗婦惱

是不是可以點擊還原按鈕的時候,改變一下state,在shouldComponentUpdate里面不止做props變化的檢測,也考慮state的變化。

shouldComponentUpdate(nextProps, nextState)
2017年6月12日 06:54