react-navigation怎么跳第三个页面?



  • 我找了下完全没资料可以参考,文档也没提及,只能先写一下试试看,但是报错了:
    比如我有三个页面:login - home - detail ,
    1,我先在login页面做了一个StackNavigator,包含了login、home两个页面,成功跳转了;
    获取navigate方法 : const { navigate } = this.props.navigation;
    跳转: navigate( 'Home' );

    2,然后我想再从home跳到detail页面,我又在home页面做了一个StackNavigator,包含了home、detail页面,跳转失败了:
    获取navigate方法还是这样 : const { navigate } = this.props.navigation;
    跳转: navigate( 'Detail' );
    0_1501745712903_WechatIMG1.jpeg


  • administrators

    stack就是堆起来的意思——什么东西堆起来?——所有的页面堆起来
    所以整个app只有一个stacknavigator,不是一个页面做一个stack



  • @晴明 我把页面引入都放到第一个页面里了,但还是报一样的错误。。。


  • administrators

    虽然你没贴代码,但我能猜出大概错误
    你的点击方法基本上没有做绑定this的操作(因为this为空,所以this.props为undefined)

    或者是点击方法所在的是一个页面的子组件(所以this.props.navigation为undefined)

    不外乎这两种情况



  • @晴明 是的!是一个子组件,请问我该怎么做?


  • administrators

    @ShawnDeveloper 那就把父组件里的navigation给手动传递一下咯

    <子组件 navigation={this.props.navigation}



  • @晴明 还是报错。。。0_1501897294062_WechatIMG1.jpeg


  • administrators

    没有一点分析能力吗?
    看你哪里用到了params.user这个变量但是又没有传值过去啊



  • @晴明 就是因为根本没传user这个参数。。。



  • @晴明 是在其他的页面。。。找到了



  • @晴明 stack 是栈的意思,只所以取这个名字是应为页面类似于栈的先进后出特性


  • administrators

    @JxSx 那么栈是什么意思?如果楼主知道stack/栈是什么意思,他还至于写出stack嵌套stack的结构?


登录后回复