Навигация не удалась после входа в систему с помощью response-native-fbsdk

Я использую FBSDK, чтобы сделать регистрацию в реагировать родной. Мне нужно имя, фамилия и адрес электронной почты, чтобы передать их на экран регистрации и заполнить там указанные поля автоматически. Вот мой код на экране входа в систему:

      async _fbAuth() {
        //console.log("that", that);
          let { isCancelled } = await LoginManager.logInWithReadPermissions(['public_profile','user_posts', 'email','user_birthday']);
          if ( !isCancelled ) {
              let data = await AccessToken.getCurrentAccessToken();
              let token = data.accessToken.toString();
            //  await afterLoginComplete(token);
              const response = await fetch(
                  `https://graph.facebook.com/me?fields=id,email,name,first_name,last_name,gender,picture,cover&access_token=${token}`);
              let result = await response.json();
              this.setState({result});
                console.log('result result result ', result);
//navigate to complete the registration. 
                this.props.navigation.navigate('Reg_1', {name: this.state.result.name, email: this.state.result.email, surname: this.state.result.last_name })

          }
          else {
              console.log('Login incomplete');
          }

      }

Также у меня есть эта кнопка для вызова функции:

<ButtonFB
                 onPress={ this._fbAuth}
                 isLoading={false}
                 isEnabled={true}
                 label={I18n.t("Accedi_con_Facebook")}
                 style={commonStyle.Button}
                 />

Все работает отлично, а данные извлекаются хорошо. Единственная проблема - это часть навигации и setSate. Моя проблема в том, что "это" было потеряно во время входа в систему с Facebook. После входа в систему через Facebook я получил следующее предупреждение.

Возможно: необработанное отклонение обещания (id:0): ошибка типа: this.setState не является функцией

Я также пытался связать функцию _fbAuth, но это не работает. Можете ли вы помочь мне решить эту проблему. Заранее спасибо.

1 ответ

Решение

Вам нужно связать функцию как

_fbAuth = async () => {}

поскольку this не упоминается в _fbAuth функция.

Для получения дополнительной информации оформить заказ

Другие вопросы по тегам