Вызовите метод в AccessToken.getCurrentAccessToken () при создании входа в Facebook с помощью React Native. - PullRequest
0 голосов
/ 11 декабря 2018

В моем приложении я создаю логин в Facebook с помощью React Native, и это мой код:

 async handleFacebookLogin() {
    LoginManager.logInWithReadPermissions(['public_profile', 'email', 'user_friends']).then(
        function (result) {
            if (result.isCancelled) {
                console.log('Login cancelled')
            } else {
                console.log('Login success with permissions: ' + result.grantedPermissions.toString())

                AccessToken.getCurrentAccessToken().then(
                    async (data) => {

                        let resultChild = await loginWithFaceBook(data.accessToken.toString(), "POST");

                        if (resultChild.username.length > 0) {
                            this.loginWithFaceBook(resultChild.token);
                        }
                    });
            }
        },
        function (error) {
            console.log('Login fail with error: ' + error)
        }
    )
}

Мой метод:

loginWithFaceBook = async (tokenFace) => {
    Toast.show('Login success!');
    this.saveTokenLogin(tokenFace); 
}

Это моя ошибка:

_this.loginWithFaceBook is not a function

Как использовать метод в AccessToken.getCurrentAccessToken()?

1 Ответ

0 голосов
/ 11 декабря 2018

Вставьте этот код:

const _this = this;

в следующий код:

async handleFacebookLogin() {

и замените этот код:

  this.loginWithFaceBook(resultChild.token);

на этот код:

_this.loginWithFaceBook(resultChild.token);

Наслаждайтесь.

это полный код:

 async handleFacebookLogin() {
    const _this = this;
    LoginManager.logInWithReadPermissions(['public_profile', 'email']).then(
        function (result) {
            if (result.isCancelled) {
                console.log('Login cancelled')
            } else {
                console.log('Login success with permissions: ' + result.grantedPermissions.toString())
                let tokenFace = '';
                AccessToken.getCurrentAccessToken().then(
                    async (data) => {
                        data.accessToken)
                        let resultChild = await loginWithFaceBook(data.accessToken.toString(), "POST");
                        if (resultChild.username.length > 0) {
                            _this.loginFaceBook(resultChild.token);
                        }
                    });
            }
        },
        function (error) {
            console.log('Login fail with error: ' + error)
        }
    )
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...