You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native父组件向子页面传递状态问题求助

解决方案

1. 修改HomePage.js(解决跳转传参+移除直接渲染子组件)

删掉直接渲染的<SecondPage>代码,同时在跳转时通过navigate方法传递参数:

export default class HomePage extends Component {
  static navigation={}
  constructor(){
    super(); 
    this.state = {alreadyLaunched: null,sid:"ooo"};
  }
  render(){
    return (
      <View style={styles.container}>     
        {/* 移除直接渲染的子组件,解决首页显示子页面内容的问题 */}
        {/* <SecondPage stato={this.state.sid} /> */}                   
        <Button
          onPress={ () => this.props.navigation.navigate('SecondPage', { stato: this.state.sid })}  
          title="DETAILE"  color="orange"/>
      </View>       
    );
  }
}  

2. 修改SecondPage.js(接收导航传递的参数)

通过this.props.route.params获取跳转时传递的参数,同时做空值判断避免报错:

export default class SecondPage extends Component {
  render(){
    const stato = this.props.route?.params?.stato || '';
    return (
      <View >
        <Text>result is: {stato}</Text>
      </View>     
    )
  }
}

关键说明

  • 你之前在HomePage里直接渲染SecondPage属于组件嵌套实例,和通过navigation跳转的是完全独立的两个组件,所以跳转后的实例拿不到嵌套渲染时的props。
  • React Navigation跳转传参时,参数会被存入目标页面的route.params对象中,类组件通过this.props.route即可访问(适配React Navigation 5及以上版本)。

内容的提问来源于stack exchange,提问作者Elly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 15:12:23