React-native - прохождение реквизита не определено - PullRequest
0 голосов
/ 30 апреля 2018

Я пытаюсь передать имя пользователя между двумя файлами, но оно остается неопределенным. Куда я иду не так? Спасибо!

// Файл для входа

      constructor(props){
        super(props);
        this.state={
          credentials: {
            username: "",
            password:"",

          }
        }
        this.navigate = this.props.navigation.navigate;
    }


      signIn(){
          {....}
          this.navigate("main", {
                username: this.state.username,
              });
        }

  }

В основном:

constructor(props) {
        super(props);
    this.navigate = this.props.navigation.navigate;
    this.params = this.props.navigation.state.params;
}
{...}
    render() {
    console.log(this.params.username);
    //here it's undefined

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

Используйте params, а navigate() для передачи параметров.

this.navigate({
   routeName: 'main',
   key: 'main',
   params: { 
      username: this.state.username
   }
});

Для доступа используйте this.props.navigation.state.params.username.

Надеюсь, это поможет!

0 голосов
/ 30 апреля 2018

Вы неправильно получаете доступ к параметрам в компоненте Main, вам нужно получить доступ с this.props.navigation.state.params, вы получите его как

constructor(props) {
        super(props);
    this.navigate = this.props.navigation.navigate;
    this.params = this.props.navigation.state.params;
}
{...}
render() {
console.log(this.props.navigation.state.params.username);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...