Javascript React本机Facebook sdk登录按钮不工作

Javascript React本机Facebook sdk登录按钮不工作,javascript,react-native,Javascript,React Native,我正在尝试使用react native fbsdk登录。我沿着楼梯走。运行xcode时,我没有收到任何错误 当我运行react native run ios时,我没有错误,甚至可以看到facebook登录按钮,但当我点击按钮时,它不会将我带到facebook登录页面。什么也没发生。下面是我的代码: import React, {Component} from 'react'; import {Platform, StyleSheet, Text, View} from 'react-native

我正在尝试使用
react native fbsdk
登录。我沿着楼梯走。运行xcode时,我没有收到任何错误

当我运行
react native run ios
时,我没有错误,甚至可以看到facebook
登录按钮
,但当我点击按钮时,它不会将我带到facebook登录页面。什么也没发生。下面是我的代码:

import React, {Component} from 'react';
import {Platform, StyleSheet, Text, View} from 'react-native';
import { LoginButton, AccessToken } from 'react-native-fbsdk';

export default class App extends Component<Props> {

  loginFacebook(){
  LoginManager.logInWithReadPermissions(["public_profile"]).then(
    function(result) {
      if (result.isCancelled) {
        console.log("Login cancelled");
      } else {
        console.log(
          "Login success with permissions: " +
            result.grantedPermissions.toString()
        );
      }
    },
    function(error) {
      console.log("Login fail with error: " + error);
    }
  );
  }

  render() {
    return (
      <View style={styles.container}>
      <LoginButton
          onLoginFinished={
            (error, result) => {
              if (error) {
                console.log("login has error: " + result.error);
              } else if (result.isCancelled) {
                console.log("login is cancelled.");
              } else {
                AccessToken.getCurrentAccessToken().then(
                  (data) => {
                    console.log(data.accessToken.toString())
                  }
                )
              }
            }
          }
          onLogoutFinished={() => console.log("logout.")}/>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
});
import React,{Component}来自'React';
从“react native”导入{平台、样式表、文本、视图};
从“react native fbsdk”导入{LoginButton,AccessToken};
导出默认类应用程序扩展组件{
loginFacebook(){
LoginManager.logInWithReadPermissions([“public_profile”])。然后(
功能(结果){
如果(结果被取消){
console.log(“登录已取消”);
}否则{
console.log(
“使用权限登录成功:”+
result.grantedPermissions.toString()
);
}
},
函数(错误){
log(“登录失败,错误:+错误”);
}
);
}
render(){
返回(
{
如果(错误){
log(“登录有错误:+result.error”);
}否则如果(结果被取消){
log(“登录被取消”);
}否则{
AccessToken.getCurrentAccessToken()。然后(
(数据)=>{
console.log(data.accessToken.toString())
}
)
}
}
}
onLogoutFinished={()=>console.log(“注销”)}/>
);
}
}
const styles=StyleSheet.create({
容器:{
弹性:1,
为内容辩护:“中心”,
对齐项目:“居中”,
背景颜色:“#F5FCFF”,
},
});

知道发生了什么吗

您是否可以尝试使用fbsdk中的此代码,它会向按钮传递一些道具,您可能会忘记执行此操作:

<LoginButton
          onLoginFinished={
            (error, result) => {
              if (error) {
                console.log("login has error: " + result.error);
              } else if (result.isCancelled) {
                console.log("login is cancelled.");
              } else {
                AccessToken.getCurrentAccessToken().then(
                  (data) => {
                    console.log(data.accessToken.toString())
                  }
                )
              }
            }
          }
          onLogoutFinished={() => console.log("logout.")}/>

我想出来了。我不知道我花了多少时间修理这个

原来这是FacebookSDKs-iOS-4.39.0的一个bug,我不得不将它降级到
FacebookSDKs-iOS-4.38.0


我下载了旧版本,它工作了

我通过从终端运行应用程序解决了这个问题
react native run android

我的工作对象是: “反应本机”:“0.60.5”,
“react native fbsdk”:“^1.0.4”

谢谢您的评论。我尝试了代码,但它给我带来了一个错误
无法读取null属性'error'
你能把代码放在什么地方吗?我会为您检查。您是否可以创建另一个按钮()并导入{LoginManager}以测试函数loginFacebook()?我做了
,但单击按钮时没有发生任何事情。您的代码没有问题。如果没有,我想你在安装lib的时候错过了一些东西。再次尝试重新安装fbsdk,npm启动--清除缓存,然后再次运行项目。
<button onclick={this.loginFacebook}> </button>
loginFacebook(){
LoginManager.logInWithReadPermissions(["public_profile"]).then(
  function(result) {
    if (result.isCancelled) {
      console.log("Login cancelled");
    } else {
      console.log(
        "Login success with permissions: " +
          result.grantedPermissions.toString()
      );
    }
  },
  function(error) {
    console.log("Login fail with error: " + error);
  }
);
}