【问题标题】:ERROR: Undefined is not an object (evaluating 'NativeGraphRequestManager.start') - react-native-fbsdk (Android)错误:未定义不是对象(评估“NativeGraphRequestManager.start”)-react-native-fbsdk(Android)
【发布时间】:2018-01-24 01:05:27
【问题描述】:

有人知道怎么解决吗?请帮忙! Console error:

Events.js //当我按下时出现错误。我想我的问题就在这里。

  import React, { Component } from 'react';
  import { Image, StyleSheet, View, TouchableOpacity, Text } from 'react-native';
  const FBSDK = require('react-native-fbsdk');
  const {
    GraphRequest,
    GraphRequestManager,
  } = FBSDK;

  class Eventos extends Component {

    getInfo() {
      const infoRequest = new GraphRequest(
        '/me',
        null,
        this.responseInfoCallback,
      );

      new GraphRequestManager().addRequest(infoRequest).start();
    }

    responseInfoCallback(error, result) {
      if (error) {
        alert('Error fetching data: ' + error.toString());
      } else {
        alert('Success fetching data: ' + result.toString());
      }
    }

    render() {
      return (
        <View>
          <TouchableOpacity
            onPress={() => this.getInfo()}
          >
            <Text>GetInfo</Text>
          </TouchableOpacity>
        </View>

     );
   }
  }

  export default Eventos;

MainActivity.java

  public class MainActivity extends ReactActivity {

      @Override
      public void onActivityResult(int requestCode, int resultCode, Intent data) {
          super.onActivityResult(requestCode, resultCode, data);
          MainApplication.getCallbackManager().onActivityResult(requestCode, resultCode, data);
      }

      @Override
      protected String getMainComponentName() {
          return "reactnavigationdrawer";
      }
  }

MainApplication.java //我觉得还可以。

  public class MainApplication extends Application implements ReactApplication {

    private static CallbackManager mCallbackManager = CallbackManager.Factory.create();

    protected static CallbackManager getCallbackManager() {
      return mCallbackManager;
    }

    private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
      @Override
      public boolean getUseDeveloperSupport() {
        return BuildConfig.DEBUG;
      }

      @Override
       protected List<ReactPackage> getPackages() {
         return Arrays.<ReactPackage>asList(
            new MainReactPackage(),
            new VectorIconsPackage(),
            new FBSDKPackage(mCallbackManager)
        );
      }
    };

    @Override
    public ReactNativeHost getReactNativeHost() {
      return mReactNativeHost;
    }

    @Override
    public void onCreate() {
      super.onCreate();
      AppEventsLogger.activateApp(this);
      SoLoader.init(this, /* native exopackage */ false);
    }
  }

package.json // 我可能在使用不推荐使用的库吗?

        {
            "name": "BealegendApp",
            "version": "0.0.1",
            "private": true,
            "scripts": {
                "start": "node node_modules/react-native/local-cli/cli.js start",
                "test": "jest"
            },
            "dependencies": {
                "firebase": "^4.8.2",
                "lodash": "^4.17.4",
                "react": "16.0.0-alpha.12",
                "react-native": "^0.46.4",
                "react-native-fbsdk": "^0.7.0",
                "react-native-responsive-image": "^2.2.0",
                "react-native-side-menu": "^1.1.3",
                "react-native-textinput-effects": "^0.4.2",
                "react-native-vector-icons": "^4.5.0",
                "react-navigation": "^1.0.0-beta.11",
                "react-redux": "^5.0.6",
                "redux": "^3.7.2",
                "redux-thunk": "^2.2.0"
            },
            "devDependencies": {
                "babel-jest": "20.0.3",
                "babel-preset-react-native": "2.1.0",
                "eslint-config-rallycoding": "^3.2.0",
                "jest": "20.0.4",
                "react-native-vector-icons": "^4.5.0",
                "react-test-renderer": "16.0.0-alpha.12"
            },
            "jest": {
                "preset": "react-native"
            }
        }

这是一个应用程序,它必须向 facebook graph api 发出请求。当我 onPress 出现错误:“未定义不是对象(评估'NativeGraphRequestManager.start')”我不知道为什么。请帮忙!!

如果您需要更多代码或详细信息,请告诉我!谢谢!

【问题讨论】:

    标签: java android react-native undefined


    【解决方案1】:

    错误:您需要一个 accessToken 才能使用 Graph。在 exaple 中没有定义 accessToken。

    要获得它,您必须使用 facebook(LoginButton 组件)登录。之后,你可以通过 props 发送这个 token 并在你想要的地方发出请求。

    它适用于您可以在链接中找到的配置(在答案中):

    Configuration

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多