【发布时间】:2018-07-02 15:52:29
【问题描述】:
我正在尝试使用 react native 和 react 导航构建一个应用,这样在一个屏幕上更改某些内容也会在另一个屏幕上更改它。
到目前为止,我发现能够在两个屏幕之间同步数据的唯一方法是使用带有onPress={() => navigate('OtherScreen', this.state)} 的按钮。这有两个问题。首先,它只适用于我明确调用导航的地方——当我滑动更改屏幕时,它不会传输数据。但大多数情况下,这似乎与 React 哲学背道而驰,即数据应该通过渲染调用从模型中提取,而不是一个渲染方法将数据推入另一个组件。
这完全把我难住了。我目前的“解决方案”是将我的整个应用程序编写在一个文件中,以便所有内容都在同一个范围内,并且我可以使用全局变量来存储全局状态。
我不可能是第一个遇到这个问题的人,而且我很难想象 react-native 没有 any 内置方法来定义应用程序范围的数据存储。
是否有在 react-native 中全局共享数据的标准模式?
如何在两个屏幕之间同步数据?
【问题讨论】:
-
我在另一个文件中创建全局变量并将其导入使用。
-
Redux 是正确的解决方案,但如果你想以艰难的方式做到这一点,你总是可以将状态作为道具传递。
-
我遇到了同样的问题。似乎 react-navigation 似乎不鼓励使用带有 react-navigation 的 redux。似乎一个不错的解决方案可能是允许屏幕访问当前路线并在其上查询方法,或者让路线将额外信息添加到可以从任何地方访问的参数中
标签: reactjs react-native global-variables react-navigation