0

我正在尝试将 Mapbox ( https://github.com/mapbox/react-native-mapbox-gl ) 与 React-Native、React Redux 和 Flux Navigation 一起使用。

我将我的应用程序构建在一个模块中,其中我有一个模块搜索和映射。它的结构是这样的:

/modules
   /search
       /containers
           SearchResults.js
   /map
      /containers
           Map.js

在 SearchResults.js 中,我得到 10 个结果,这些结果与图像和文本一起显示。结果存储在我的 redux 存储中。我在 Map.js 和 SearchResults.js 中有 2 个按钮,它们可以在 2 个容器之间进行导航(通过 Flux 导航 Action.Map() 和 Action.SearchResults() 向前和向后)。

在 Map.js 中,我正在更新地图状态以从 searchResult 存储中接收经度和纬度。我现在面临的问题是,如果我在 SearchResults 和 Map 之间向前和向后切换,就会出现巨大的性能问题。发生这种情况是因为地图总是被重新渲染。

我试图找到使用反应生命周期方法的解决方法,但这没有帮助。我认为这没用,因为我在 2 个模块之间导航。

防止 Map.js 一直重新渲染的最佳方法是什么?

4

1 回答 1

0

我认为这就是您的定义type中的关键字。Scene根据react-native-router-flux 的文档:

场景类型

定义如何将新屏幕添加到导航器堆栈。推动、跳跃、替换、重置之一。如果父容器是tabbar(tabs=true),会自动设置跳转。

如果我们查看 react native 的官方Navigator 文档,我们会了解到在场景之间跳转允许我们在不卸载的情况下更改屏幕。

默认情况下 react-native-router-flux 使用 push 来卸载你的场景。

我没有自己尝试过,但我认为它应该可以工作。

于 2016-06-02T15:08:11.437 回答