react native cannot read property 'navigate' of undefined

最近从原生开发向RN过渡,写界面跳转时候遇到个小问题,情况是这样的,封装了一个视图,视图中有一个按钮,点击按钮需要跳转到另一个界面,但是视图内是没有导航栏控制器的,于是报了这个错误,这时候我们要想办法给这个视图内穿进去一个导航栏控制器,在视图内部定义如下:

props:{
  navigation: PropTypes.object
}

constructor(props){
  super(props);
  this.navigation = this.props.navigation;
}

在调用视图的界面

<CustomView navigation={this.props.navigation}/>

这一步是将导航栏控制器传给视图,让视图可以点击内部按钮跳转,下一步在视图内就可以使用了

this.navigation.navigate('CustomPage')

当然了,如果不采用这种方式,在视图内添加一个点击事件属性,由外部传入自定义函数也是可以做到的

posted @ 2020-04-10 16:42  iosMrLi  阅读(1523)  评论(0编辑  收藏  举报