嘿,我是新来的本地人。因此,基本上,我有一个带有两个屏幕选项的堆栈导航器:屏幕1(默认)和屏幕2。我已经设置了一个按钮,因此按下该按钮将带我到屏幕2。 所以在Screen1中,我有一个数组显示为scrollview组件。现在,当我按下按钮转到screen2时,我想将一些数组值传递给该screen2组件。最好的方法是什么?谢谢:)
我真的很新,所以我的尝试有点愚蠢。我尝试导入Screen1组件并通过this.state调用数组值,但是没有访问权限。
答案 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。