簡體   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