无法将参数传递给另一个屏幕React Native

时间:2017-10-26 09:45:23

标签: react-native navigation react-navigation

我正在使用反应导航并尝试将参数从第二个屏幕发送到第三个屏幕

第一个屏幕(App.js) "s"

第二个屏幕(Index.js)

this.props.navigation.navigate('Index1',{userid1:this.state.studentsS});

当我检查(this.props.navigation.state.params.userid1)的值时,它具有正确的数字

第三屏(MyDealOffer.js)

this.props.navigation.navigate('MyDealOffer',{userid3:this.props.navigation.state.params.userid1});

`

输出:"没有任何数据的用户详细信息"

========================但是====================== 当我在第二个屏幕中更改以下行

componentDidMount(){ this.setState({ parmstudentid:this.props.navigation.state.params.userid3, }) var x = this.props.navigation.state.params.userid3; var url = 'http://***:82/wasily/MyDealOffer.php? UserID=${this.props.navigation.state.params.userid3}' fetch(url, {method:"POST"}).then((response)=>response.json()).then((responseJson)=>{ var ds = new ListView.DataSource({rowHasChanged:(r1,r2)=>r1!=r2}); this.setState({ isLoading:false, cloneStudent:ds.cloneWithRows(responseJson), }); }) } render() { if(this.state.isLoading){ return( <View><Text>Wait</Text></View> ) } return ( <View style={styles.container}> <Text>User Details</Text> <ListView dataSource={this.state.cloneStudent} renderRow={(rowData)=> <Text>Username : {rowData.Price} , User ID:{rowData.Price} </Text> }/> </View> this.props.navigation.navigate('MyDealOffer',{userid3:this.props.navigation.state.params.userid1}); 它在第三个屏幕中显示正确的数据

1 个答案:

答案 0 :(得分:0)

尝试将onPress={this.handle1Press}内的TouchableOpacity更改为onPress={this.handle1Press.bind(this}