我正在使用反应导航并尝试将参数从第二个屏幕发送到第三个屏幕
第一个屏幕(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});
它在第三个屏幕中显示正确的数据
答案 0 :(得分:0)
尝试将onPress={this.handle1Press}
内的TouchableOpacity
更改为onPress={this.handle1Press.bind(this}