【问题标题】:can't passing parameter to another screen React Native无法将参数传递到另一个屏幕 React Native
【发布时间】:2017-10-26 09:45:22
【问题描述】:

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

第一个屏幕 (App.js) this.props.navigation.navigate('Index1',{userid1:this.state.studentsS});

第二屏(Index.js)

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

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

第三屏(MyDealOffer.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}); 它在第三个屏幕中显示正确的数据

【问题讨论】:

  • 您能在第二个屏幕索引中显示您调用this.props.navigation.navigate('MyDealOffer', {...}) 的方法吗?不仅是那个方法,还有它是如何被调用的(比如点击按钮)。例如,假设您在方法goToNextScreen() 中有它。你有一个带有道具onPress={this.goToNextScreen}的按钮。您需要将其更改为 onPress={this.goToNextScreen.bind(this)} 或将 this.goToNextScreen = this.goToNextScreen.bind(this) 放入构造函数中以启用对 this 的任何值的访问
  • index.js 代码下方 render() { return ( button ) } handle1Press = ()=> { const x = this.props.navigation.state.params.userid1; this.props.navigation.navigate('MyDealOffer',{userid3:this.props.navigation.state.params.userid1}); }

标签: react-native navigation react-navigation


【解决方案1】:

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

【讨论】:

  • 还是同样的问题
  • 仍然是同样的问题,它使用 var url = http://****:82/wasily/MyDealOffer.php?UserID=${this.props.navigation.state.params.userid3} 但使用 var url = http://****:82/wasily/MyDealOffer.php?UserID=${this.props.navigation.state.params.userid3} 它不起作用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-30
  • 2019-01-18
  • 2023-01-10
  • 1970-01-01
  • 2020-11-14
相关资源
最近更新 更多