本次做了一个关于多个table之间数据的绑定切换问题,数据一直不能同步更新 ,于是网上搜半天最终还是回到react的本质生命周期上面来,
shouldComponentUpdate网上有解释:
react性能优化非常重要的一环。组件接受新的state或者props时调用,我们可以设置在此对比前后两个props和state是否相同,如果相同则返回false阻止更新,因为相同的属性状态一定会生成相同的dom树,这样就不需要创造新的dom树和旧的dom树进行diff算法对比,节省大量性能,尤其是在dom结构复杂的时候
于是通过解释去打印了除了nextprops发现其实数据已经变化.只是数据没有渲染.通过此方法判断数据是否前后相等,
console.log(nextProps,nextState)
if(this.state.dataSource[this.state.dataSource.length -1 ].f===nextProps.data.mainFormVO.data.s_27){
return false
}
else{
this.showTableData(nextProps.data)
return true
}
前期一直通过去判断nextState了 然后就一直return false