问题描述
假如你有A页面,A页面包含B组件,B组件内部包含点击事件(未提升至父组件),点击B组件跳转到C页面
明明A页面和B页面你都在StackNavigation中定义了,为什么点击A页面中的B组件会显示如下错误呢?
undefined is not an object (evaluating 'this.props.navigation.navigate')
解决
原因就在于navigation
只会传递给直接在StackNavigation
定义的组件,也就是说B组件是接收不到navigation
的,官网描述:
因此只要在调用子组件时将navigation
传递进去就可以了:
<B navigation={this.props.navigation} />
结语
本文的目的主要时记录本人的学习轨迹,如果能给各位提供一些思路,那将是本人的荣幸
网友评论