React Native 如何在两个屏幕之间同步数据?

yrefmtwq  于 2023-01-09  发布在  React
关注(0)|答案(2)|浏览(185)

我正在尝试构建一个带有react原生和react导航的应用程序,这样在一个屏幕上更改某些内容也会在另一个屏幕上更改。
到目前为止,我发现能够在两个屏幕之间同步数据的唯一方法是使用带有onPress={() => navigate('OtherScreen', this.state)}.的按钮。这有两个问题。首先,它只在我显式调用navigate时有效--当我滑动以切换屏幕时,它不会传输数据。但最重要的是,这似乎与react的理念相反,即数据应该通过render调用从模型中提取。而不是一个渲染方法将数据推入另一个渲染方法
我目前的解决方案是在一个文件中编写整个应用程序,这样所有内容都在同一个作用域中,我可以使用全局变量来存储全局状态。
我不可能是第一个遇到这个问题的人,而且我发现很难想象react-native没有任何用于定义应用程序范围的数据存储的内置方法。
在react-native中,是否存在全球共享数据的标准模式?
如何在两个屏幕之间同步数据?

aiqt4smr

aiqt4smr1#

要在React App中共享数据B/w屏幕而不使用 prop 或导航状态,您可以使用Redux。
Redux Getting Started
我建议您使用Redux工具包,因为它很容易实现Redux Toolkit

0yg35tkg

0yg35tkg2#

有两种方法可以解决这个问题:

上下文API

contextAPI内置在react提供的特性中,因此如果您有bundle大小问题,我建议使用Context

Redux工具包

Redux是目前最常用的全局共享状态的方式,它很容易学习。但是,它是第三方库,因此,这将增加包的大小。

相关问题