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
相关产品推荐
相关产品推荐

