【发布时间】:2018-01-11 18:07:44
【问题描述】:
在我的 React Native 应用程序中,我有一个自定义登录 facebook 按钮:
<Button onPress={() => this.handleFacebookLogin()}>
<Text>Login with Face</Text>
</Button>
还有handleFacebookLogin函数:
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(
(data) => {
signInFacebookLoginInFirebase(data.accessToken)
//this.signInFacebookLoginInFirebase(data.accessToken)
}
)
}
},
function (error) {
console.log('Login fail with error: ' + error)
alert('Error at login, no network ?')
}
)
}
但我收到此错误:
可能的未处理承诺拒绝(id:20):ReferenceError: 未定义 signInFacebookLoginInFirebase 类型错误:_this2.signInFacebookLoginInFirebase 不是函数
TypeError: _this2.signInFacebookLoginInFirebase 不是函数
还有 signInFacebookLoginInFirebase 方法:
signInFacebookLoginInFirebase(facebookToken){
const credential = Fb.firebase.auth.FacebookAuthProvider.credential(facebookToken);
Fb.firebase
.auth()
.signInWithCredential(credential)
.then(() => alert('Account accepted'))
.catch((error) => alert('Account disabled'));
}
【问题讨论】:
-
那么你有一个叫做
signInFacebookLoginInFirebase的函数吗? -
注释掉了错误的行?
-
我用“this”试过了,但没有用
-
将
function (result)更改为(result) =>... 现在this可能是正确的,所以您可以使用this.signInFacebookLoginInFirebase- 也许?从您的不同代码片段中不清楚 -
它正在工作,谢谢@JaromandaX,如果你发布一个,我赞成你的回答
标签: javascript react-native es6-promise