如何在本机屏幕之间传递数据?

时间:2018-12-27 09:15:41

标签: android ios react-native

嘿,我是新来的本地人。因此,基本上,我有一个带有两个屏幕选项的堆栈导航器:屏幕1(默认)和屏幕2。我已经设置了一个按钮,因此按下该按钮将带我到屏幕2。 所以在Screen1中,我有一个数组显示为scrollview组件。现在,当我按下按钮转到screen2时,我想将一些数组值传递给该screen2组件。最好的方法是什么?谢谢:)

我真的很新,所以我的尝试有点愚蠢。我尝试导入Screen1组件并通过this.state调用数组值,但是没有访问权限。

2 个答案:

答案 0 :(得分:5)

传递数据的最简单方法是在导航时。为此,最好将数组置于状态,然后使用以下方法:

onPress=()=>{
     this.props.navigation.navigate('Screen2', {
          yourArray: this.state.yourArray, });
      }
}

然后在下一个屏幕(Screen2)中可以在props中找到数组(您的数据)。因此在scrren2的构造函数中,您可以在此处找到数据:

  constructor(props) {
    super(props);

    var params = props.navigation.state.params.yourArray;

}

还可以在不触摸状态的情况下返回上一个屏幕,您可以在“后退”按钮中使用以下代码:

  const { goBack } = this.props.navigation;
      goBack();

答案 1 :(得分:1)

将数据从Screen1传递到Screen2。在这里,我们将数组存储在一个状态中。

onPress={() => this.props.navigation.navigate('Screen2', {array: this.state.array})}

要从Screen2中的Screen1获取数据

this.props.route.params.array

此回复的来源为官方文档。我也尝试过,因为上述解决方案对我不起作用。有关更多信息,请访问此React Navigation Docs