React-Native页面跳转

如何从主页跳转到详情页:

在跳转中经常出现  undefined is not an object (evaluating 'this.props.navigation.navigate')

解决方案1:

这是由于在一个js文件中创建了俩个class导致的!这时其中一个带export 的class使用navigation跳转不会报错,而在另一个class中使用navigation跳转就会报这个错!

是什么原因? 答案是局部变量和全局变量导致的

当我在俩个class之外定义一个变量navigation ,在带export 的class中的constructor中将this.props.navigation赋值给这个全局变量时 , 这时第二个class中的navigation跳转也生效了, 说明俩个class的navigation统一了就不会报错了,

navigation = this.props.navigation;

所有总结就是:当我们在一个js文件中创建>1个的class时,需要做下声明全局变量,并在导出的class中的constructor初始化,将this.props.navigation赋值给这个全局变量,如果一个js中只有一个class,那么就直接使用就行了哦(this.props.navigation)

注意:网上也有说要在前一个页面声明this.props.navigation赋值给要跳转的组件,经测试,也不需要声明和赋值!!!



解决方案2: 

一般在一个js中创建俩个class , 一个带export的class可以跳转到其他页面,一个class不行,但不行的那个class却被带export的class引用了,那么一种思路就是将export class中的this.props传给另一个class组件就行了,只需在引用组件上加入{...this.props}

带export 的class中使用{...this.props}将自己的属性共享给另一个class

 <PopularTab key={i} tabLabel={lan.name} {...this.props}/> : null;
第二个class

class PopularTab extends React.Component{

猜你喜欢

转载自blog.csdn.net/qq_35394891/article/details/80463891