在使用React Native在Facebook中创建登录时,在AccessToken.getCurrentAccessToken()中调用方法

问题描述 投票:0回答:1

在我的应用程序中,我正在使用React Native在Facebook上创建一个登录,这是我的代码:

 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()中使用方法?

javascript facebook react-native login
1个回答
0
投票

插入此代码:

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)
        }
    )
}
© www.soinside.com 2019 - 2024. All rights reserved.