我正在尝试构建一个带有react原生和react导航的应用程序,这样在一个屏幕上更改某些内容也会在另一个屏幕上更改。
到目前为止,我发现能够在两个屏幕之间同步数据的唯一方法是使用带有onPress={() => navigate('OtherScreen', this.state)}.
的按钮。这有两个问题。首先,它只在我显式调用navigate时有效--当我滑动以切换屏幕时,它不会传输数据。但最重要的是,这似乎与react的理念相反,即数据应该通过render调用从模型中提取。而不是一个渲染方法将数据推入另一个渲染方法
我目前的解决方案是在一个文件中编写整个应用程序,这样所有内容都在同一个作用域中,我可以使用全局变量来存储全局状态。
我不可能是第一个遇到这个问题的人,而且我发现很难想象react-native没有任何用于定义应用程序范围的数据存储的内置方法。
在react-native中,是否存在全球共享数据的标准模式?
如何在两个屏幕之间同步数据?
2条答案
按热度按时间aiqt4smr1#
要在React App中共享数据B/w屏幕而不使用 prop 或导航状态,您可以使用Redux。
Redux Getting Started
我建议您使用Redux工具包,因为它很容易实现Redux Toolkit
0yg35tkg2#
有两种方法可以解决这个问题:
上下文API
contextAPI内置在react提供的特性中,因此如果您有bundle大小问题,我建议使用Context。
Redux工具包
Redux是目前最常用的全局共享状态的方式,它很容易学习。但是,它是第三方库,因此,这将增加包的大小。