如何将状态从一个反应本机屏幕传递到另一个

时间:2018-10-10 12:24:42

标签: react-native react-navigation

我有两个独立的屏幕

  1. 登录屏幕
  2. 仪表板

现在,在登录屏幕上,我将请求的API数据存储在状态(this.state.data)内,并且要在仪表盘屏幕上显示的存储的数据,例如姓名或年龄,国家/地区或其他内容。现在如何同步这两个屏幕,我正在使用React Navigation 2.0

2 个答案:

答案 0 :(得分:1)

登录请求成功后,您需要将当前组件更改为“仪表板”组件-

可以通过两种方式完成

  1. 如果要更换组件,则可以调用<Dashboard data={this.state.data} />并以this.props.data的形式在仪表板屏幕中获取它
  2. 如果要导航到组件,则可以通过this.props.navigation.navigate('Dashboard', { data: this.state.data });来完成,然后在Dashboard组件中可以通过this.props.navigation.state.params.data来获取它。

希望它会有所帮助:)

答案 1 :(得分:1)

如果您正在做一个小型项目,则可以通过道具来完成,如@Aseem Upadhyay

所述

但是请注意,随着项目的增长,此方法将无效。假设您有多个按层次结构分布的屏幕,其中一个子屏幕需要将数据传递到另一个节点上的另一个屏幕。为了通过道具来做到这一点,父组件有必要将这些值传递给两个屏幕。这种表格很难管理。

执行此操作的理想方法是通过redux。使用它,您可以创建变量的共享存储,因此您可以在应用程序中的任何位置访问它们。以下链接演示了如何在项目中配置redux。 https://blog.cloudboost.io/getting-started-with-react-native-and-redux-6cd4addeb29

建议对需要共享的变量使用redux。如果只有局部组件变量,则不需要使用它。

我希望这可以为您的项目提供帮助。

拥抱!