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

React Native新手求助:类组件中如何正确使用navigation属性?

问题分析与解决

嘿,我看到你的问题啦!问题出在Notes类组件中调用navigation的方式错误,咱们一步步来拆解:

错误原因

你在Home组件里已经把navigation作为props传递给了Notes组件,但在Notes的renderItem回调里,你写的是this.navigation.navigate("Edit_note")——这里漏掉了props!类组件的所有传入属性都存在this.props对象里,包括你传递的data和navigation,你用this.props.data能正常工作,那navigation也得遵循同样的规则。

修正后的Notes组件代码片段

render() {
  return (
    <>
      <View style={this.styles.View}>
        <FlatList 
          data={this.props.data} 
          renderItem={({item}) => (
            <TouchableOpacity 
              onPress={() => this.props.navigation.navigate("Edit_note")}
            >
              <Text style={this.styles.Text}>{item.title}</Text>
            </TouchableOpacity>
          )} 
          keyExtractor={(item) => item.note_number.toString()}
        />
      </View>
    </>
  );
}

额外小提示

我还帮你调整了onPress的写法:把this.props.navigation.navigate(...)放进了箭头函数里,这样能确保调用navigate时的上下文是正确的——虽然你用箭头函数作为renderItem的回调,this已经绑定到Notes组件实例,但显式用箭头函数包裹导航调用会更稳妥,避免潜在的this指向问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 19:47:53