(React-Navigation)在屏幕加载时多次调用redux动作

时间:2017-11-14 18:18:03

标签: react-native react-navigation tabnavigator

当我使用TabNavigator进入屏幕时(有5个选项卡),其中一个在componentWillMount上调用redux操作。但奇怪的是,它永远不会停止调用行动。

enter image description here

1 个答案:

答案 0 :(得分:1)

当您从生命周期方法中调用setState时,通常会发生这种情况。它引发了连锁反应,因为当Redux更新时组件会重新渲染,重新渲染会导致Redux更新。

我认为这是你问题的根源。

要解决此问题,您需要改进设置状态的方式,例如仅更新所需的字段,或使组件仅侦听该字段,或者不在那里更新。

您还可以添加条件,例如if (this && this) dont update

调查也很好if (props === nextProps) dont update

您可能需要查看shouldComponentUpdate生命周期方法,但我会说,应该避免这种情况,因为它可能会产生难以追踪的奇怪错误。