Навигация не удалась после входа в систему с помощью 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
функция.
Для получения дополнительной информации оформить заказ