我正在使用Expo + React Navigation。
在我的React Native应用程序中,有许多屏幕使用一个名为Map
的组件。我不希望每次切换屏幕时都重新渲染此组件。是否有任何方法可以将我的Map
组件保存到某种存储中,以便每次需要Map
时,我的应用程序不必重新渲染它?
我正在使用Expo + React Navigation。
在我的React Native应用程序中,有许多屏幕使用一个名为Map
的组件。我不希望每次切换屏幕时都重新渲染此组件。是否有任何方法可以将我的Map
组件保存到某种存储中,以便每次需要Map
时,我的应用程序不必重新渲染它?
react-native与虚拟DOM一起工作,当您切换到另一个屏幕时,我认为第一个屏幕从DOM中移除,其中包含地图组件,因此当您返回时将重新渲染。您可以在父级层级上渲染地图组件,并将其作为子组件传递给屏幕,这是一种解决方案,但不确定是否是最佳解决方案。
Map
,它在应用程序启动时首先被初始化。然而,每次切换屏幕时它都会重新渲染。我认为你建议的方法在我的情况下不起作用,因为我的组件就像你的 Firebase 一样在开始时被初始化。 - pexea12可能你可以尝试在地图组件中使用shouldComponentUpdate()
方法。
尝试仅在第一次渲染时返回true
,然后在后续调用中返回false
,告诉React不要重新渲染你的组件。
react-navigation
中的 StackNavigator。 - pexea12