javascript - React 本机方法未定义
问题描述
我试图在AccessToken.getCurrentAccessToken()中调用signInWithFacebook方法,但获取signInWithFacebook是未定义的。如果我在LoginManager.logInWithReadPermissions函数之外调用该方法,则该方法可以正常工作。我似乎无法调用LoginManager.logInWithReadPermissions中的任何方法
我是新来的反应本地人请帮忙。谢谢。
const FBSDK = require('react-native-fbsdk');
const {
LoginManager,
AccessToken,
} = FBSDK;
import React from 'react';
import { Text, View, TouchableOpacity, Image } from 'react-native';
import { connect } from 'react-redux';
import { firebaseActions as auth } from "../actions";
const { signInWithFacebook } = auth;
class FacebookLogin extends React.Component {
constructor() {
super();
this.onSuccess = this.onSuccess.bind(this);
this.onError = this.onError.bind(this);
this.onSignInWithFacebook = this.onSignInWithFacebook.bind(this);
}
async onSignInWithFacebook() {
LoginManager.logInWithReadPermissions(["public_profile"]).then(
function (result) {
if (result.isCancelled) {
console.log("Login was Cancelled");
} else {
AccessToken.getCurrentAccessToken().then(
(data) => {
this.props.signInWithFacebook(data.accessToken, this.onSuccess, this.onError);
}
);
}
},
function (error) {
console.log("An error has occured" + error);
}
);
}
onSuccess({ exists, user }) {
console.log(
"Login Success"
);
}
onError(error) {
console.log(error.message);
}
render() {
return (
<View>
<TouchableOpacity
onPress={this.onSignInWithFacebook}
>
<Text>Login</Text>
</TouchableOpacity>
</View>
);
}
}
export default connect(null, { signInWithFacebook })(FacebookLogin);
解决方案
在上一个版本中情况发生了变化。
logInWithReadPermissions
是旧的react-native-fbsdk 版本 0.8.0 中的一种方法。
logInWithPermissions
应该从 react-native-fbsdk 版本 0.10.0 开始使用。
推荐阅读
- bluetooth - 我可以仅使用 GATT 特征读取数据,还是我也需要 GATT 服务?
- angularjs - 如何在 AngularJS 中将 $http 数据从服务传递到控制器
- python - python函数代码中的错误输出
- javascript - 如何更改此联系表单的 Javascript,以便如果密钥是其他内容,则执行不同的操作?
- python - Django - 将值从 pre_save 传递到模型上的 post_save 方法
- python - 在这些日期时间使用日期时间索引的采样来选择熊猫数据框中的特征(行)
- javascript - Vue - 检查用户是否离线,然后在他们重新上线后显示 div
- java - org.springframework.beans.factory.UnsatisfiedDependencyException 自动装配时
- java - 必须实现继承的抽象方法错误 Eclipse
- php - chmod 0007 有什么问题