react render渲染两次,一次为原始state的数据,一次为新获取的数据

在项目中遇到一个问题,componentDidMount在dispath action之后,render渲染state的数据时会渲染两次,一次是原始state,一次是新获取的state,如下图
图片描述
react render渲染两次,一次为原始state的数据,一次为新获取的数据_第1张图片
图片描述
这是因为react渲染机制造成组建挂载之前,也就是componentDidMount生命周期之前自动获取了原始的state数据,componentDidMount之后state变化已经无法再次获取了
在各种爬坑google后,看到一个很好的思路
react render渲染两次,一次为原始state的数据,一次为新获取的数据_第2张图片
在私有组件的state判断一下是否是componentDidMount之后,在componentDidMount里面改变state的值,在render判断选择显示
react render渲染两次,一次为原始state的数据,一次为新获取的数据_第3张图片
react render渲染两次,一次为原始state的数据,一次为新获取的数据_第4张图片

你可能感兴趣的:(react render渲染两次,一次为原始state的数据,一次为新获取的数据)