繁体   English   中英

如何在react-native中右键单击导航抽屉打开下一个屏幕?

[英]How to open next screen on Right Button click of navigation drawer in react-native?

我想在react-native.右键单击导航抽屉打开新屏幕react-native. 在登录submit按钮上,我调用了以下代码:

登录.js

this.props.navigator.push({
          id: 'FirstScreen',
          title: 'First Screen',
          iconRight: 'map',
          rightPress: this.onPress, // method to redirect to second screen
          rightText: 'list',
          passProps: {
              api_token: this.state.login_token
            }
        });

//navigate to second screen
 onPress() {
  this.props.navigator.push({
        id: "SecondScreen",
        title: 'Second Screen',
  });
}

但我在这条线上遇到错误。

this.props.navigator.push({
            id: "SecondScreen",
            title: 'Second Screen',
      });

得到这些错误:

未定义不是一个对象(评估'this.props.navigator')

未处理的 JS 异常:未定义不是对象(评估“this.props.navigator”)

应用程序.js

  _renderScene(route, navigator) {
        navigator.navigate = this.navigate;
            switch (route.id) {
                case ‘Login’:
                    return ( <Login navigator={navigator} {...route.passProps} />);
                case ‘FirstScreen’:
                    return ( <FirstScreen navigator={navigator} {...route.passProps} />);
                case 'SecondScreen':
                    return ( <SecondScreen navigator={navigator} {...route.passProps} />);
            }
        }

导航.js

module.exports = function (scene) {
    var componentMap = {
        'Login': {
            title: 'Login',
            id: 'Login'
        },
        'FirstScreen': {
            title: 'First Screen',
            id: 'FirstScreen'
        },
        'SecondScreen': {
            title: 'Second Screen',
            id: 'SecondScreen'
        }
    }

    return componentMap[scene];
}

您可以简单地在导航器中更改this.onPress方法,如下所示,并删除包含rightPress行:

登录.js

this.props.navigator.push({
       id: 'FirstScreen',
          title: 'First Screen',
          iconRight: 'map',
          rightText: 'list',
          passProps: {
              api_token: this.state.login_token
            }
          });
          onPress: () => {
            this.props.navigator.push({
                id: "SecondScreen",
                title: 'Second Screen',
                iconRight: 'map',
                passProps: {
                    api_token: this.state.login_token,
                    username: this.state.username
                },

              });
           }
        });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM