【问题标题】:Multiconnecting to Redux with react-navigation使用 react-navigation 多连接到 Redux
【发布时间】:2019-10-27 16:44:12
【问题描述】:
想象一下,在 react-native 应用程序中有大量必须在多个组件之间处理和共享的数据。正如我所调查的那样,react-navigation 不会卸载旧层,所以如果任何旧层订阅了 redux,它将保持订阅状态,所以我会有很多订阅到 redux。那么会有一些性能问题或者我有什么问题,也许有一些方法可以解决它。
有人可以提供任何建议吗?
【问题讨论】:
标签:
react-native
react-redux
react-navigation
【解决方案1】:
我相信您所说的层是指StackNavigator 中的屏幕 - 是的,当您在当前屏幕上打开另一个屏幕时,这些不会被卸载。当然,当您从它返回时,它会卸载。订阅 redux 本身不会导致性能问题,您可以轻松地一次订阅数百个组件而不会出现任何问题。可能导致性能问题的是您处理 redux 订阅的方式 - 例如。重新加载图像,在道具更改或昂贵的渲染时发出请求。这取决于您作为开发人员来处理,并且通常在设计合理的应用程序中,底层屏幕不依赖于在其顶部打开的屏幕所导致的状态变化。
如果您仍然想玩它,请查看navigation.isFocused()。你可以创建一个HOC 来包裹你的屏幕,如果屏幕不在导航焦点上,你可以卸载它,但这可能不值得