两个生命周期函数请慎用

#1

今天想用componentWillUpdate和componentDidUpdate处理一下业务逻辑,简化组件代码,一开始主要想在state改变的时候判断是否向store发送action谁知测试的时候一直死循环,后面无奈只能把发送action的函数分别写道不同的事件中去了
具体示例如下

(以上写法是有隐患的,请避免做这样的处理)
所以想把这个坑告诉大家,这两个生命周期函数极其容易产生死循环
一般情况下请避免在这两个生命周期函数中处理业务逻辑

#2

加个shouldComponentUpdate的判断可能能避免死循环

#3

shouldComponentUpdate默认返回true,就会执行componentWillUpdate,并且很多文档都说明了componentWillUpdate是在shouldComponentUpdate为true的时候执行的,感觉照你这么写法本来就是死循环

#4

的确如此,主要原因在于store更新的时候也会让组件更新,两次更新叠加在一起就会死循环。
加了这个判断就ok了

1 Like
#5

嗯,加了个判断就ok了