我正在使用反应导航并尝试将参数从第二个屏幕发送到第三个屏幕
第一个屏幕(应用程序.js) this.props.navigation.navigate('Index1',{userid1:this.state.studentsS});
第二屏幕(索引.js)
this.props.navigation.navigate('MyDealOffer',{userid3:this.props.navigation.state.params.userid1});
当我检查(this.props.navigation.state.params.userid1)的值时,它的数字是正确的
第三屏(我的优惠.js)
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});
自 this.props.navigation.navigate('MyDealOffer',{userid3:4});
它在第三个屏幕中显示正确的数据
尝试将TouchableOpacity
内的onPress={this.handle1Press}
更改为onPress={this.handle1Press.bind(this}