就说说我今天遇到的一个bug,由componentWillReceiveProps引起的。
componentWillReceiveProps是React生命周期函数之一,在初始props不会被调用,它会在组件接受到新的props时调用。一般用于父组件更新状态时子组件的重新渲染。
了解这个前提后,我们开始来看看,由于我在子组件的componentWillReceiveProps钩子函数里拿到了父组件的dataSourceAll值,初始时,这个值是空数组,但是我在子组件里通过请求接口会改变dataSourceAll值,就这样bug出现了,打开f12,移动控制台,由于dataSourceAll值已经改变,所以会触发componentWillReceiveProps函数,这样就会使dataSourceAll又变为空数组。
解决办法:
不要再componentWillReceiveProps函数里设置dataSourceAll值。而我的因为是俩个弹窗,所以写了个判断。
网友评论