3

我正在使用 react-native-navigation 并使用 redux 进行状态管理。当我使用“push”方法将screenA转到screenB时,screenA不会卸载。这将导致不需要的重新渲染,之前在 react-navigation 中我使用 shouldComponentUpdate 将组件与当前可见的屏幕匹配以停止重新渲染。

有没有办法在 react-native-navigation 中做到这一点?

4

1 回答 1

2

当您设置导航器事件处理程序时(使用addOnNavigatorEvent),您可以跟踪屏幕生命周期事件并在屏幕消失或出现时收到通知。

或者,您可以使用 来检查屏幕当前是否可见await this.props.navigator.screenIsCurrentlyVisible(),但我不确定这样做的含义是什么,shouldComponentUpdate因为它执行的本机调用需要过桥并且可能会增加不必要的延迟。

您可以在此处查看有关屏幕可见性的更多信息。

于 2018-02-07T22:26:31.013 回答