如何在React Native中仅渲染一次组件

时间:2018-04-02 07:09:05

标签: javascript reactjs react-native react-navigation

我正在使用Expo + React Navigation。

我的React Native应用程序中有许多屏幕使用组件Map。每当切换屏幕时,我都不希望重新呈现此组件。有没有办法将我的组件Map保存到某种存储空间中,这样每次我需要Map时,我的应用都不需要重新渲染它?

4 个答案:

答案 0 :(得分:1)

如果你想要的东西不应该重新渲染。你在索引页面中给出了它。如果你在索引页面中给它,它可以在项目的任何地方访问。

示例:

每当我使用firebase时,我都会在index.js文件中初始化firebase。

答案 1 :(得分:0)

可能您可以使用地图组件的shouldComponentUpdate()进行游戏。

尝试仅为第一个渲染返回true,然后返回false进行要素调用,以告知React不要重新渲染您的组件。

答案 2 :(得分:0)

react-native与虚拟dom一起使用,当您切换到另一个屏幕时,我认为第一个屏幕已从您拥有地图组件的dom中删除,因此当您回来时它将重新呈现。您可以做的是,可以在切换屏幕的父级渲染地图组件,并将其作为子级传递到屏幕。这是一个解决方案,但不知道它是否是最佳解决方案

答案 3 :(得分:0)

如果您在第一次渲染时缓存地图数据,然后第二次使用缓存的数据以更快地渲染怎么办?

我建议您浏览Map文档以查找任何缓存道具,或者仅包括支持缓存的任何第三方Map组件。