【问题标题】:react-native-linkedin-sdk - Cannot read property 'configure' of undefined (LinkedInSessionManager.ios.js)react-native-linkedin-sdk - 无法读取未定义的属性“配置”(LinkedInSessionManager.ios.js)
【发布时间】:2017-09-30 23:05:51
【问题描述】:

我已按照here 描述的所有步骤进行操作

这是我的环境的道具:

react 16.0.0-alpha.6
react-native 0.43.3
react-native-linkedin-sdk 0.0.4
XCode 8.3.2

Xcode 项目编译没有问题,但是当我调用下面的 JS 代码时收到错误消息,表明函数 configure 未定义

这是我的测试代码:

const config = {
  clientID: '<my client id>',
  clientSecret: '<my secret>',
  state: '<my state hash>',
  scopes: 'r_basicprofile',
  redirectUri: '<my redirect URL>'
}
const LISDK = LinkedInSDK.configure(config)

导致错误的代码被截断在LinkedInSessionManager.ios.js

...
const LinkedInSDK = {
  configure(config) {
    console.info('LINKEDIN SESSION MANAGER', RNLinkedInSessionManager)
    return RNLinkedInSessionManager.configure(config);
  },
  ...
};

module.exports = LinkedInSDK;

我添加了一个控制台输出来检查我是否得到了一个RNLinkedInSessionManager 对象但我得到了一个undefined,这意味着 RNLinkedInSessionManager 项目的代码没有连接到 react-native。

文件RNLinkedInSessionManager.xcworkspace已成功添加到我的/ios下的XCode项目文件夹中,但似乎没有指向该库的链接。

非常感谢任何帮助。

【问题讨论】:

  • 您好,您找到解决方案了吗?任何帮助表示赞赏。谢谢
  • 我还在战斗没有成功:-(

标签: android xcode react-native sdk linkedin


【解决方案1】:

我放弃了使用react-native-linkedin-sdk

相反,我成功实现了这个库react-native-linkedin-login

但是,如果不进行一些修改,该库将无法工作。

这是我的发现:

安卓:

我按照here 的所有步骤操作,但收到以下错误:

错误:项目 :app 声明了从配置“编译”到配置“默认”的依赖关系,该依赖关系未在项目 :react-native-linkedin-login 的描述符中声明。

原来上面说明的路径是错误的。 为了解决这个问题,我像这样更新了settings.gradle 文件中的路径:

//project(':react-native-linkedin-login').projectDir = new File(rootProject.projectDir, '../../android')
project(':react-native-linkedin-login').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-linkedin-login/android') 

之后我就可以成功构建项目了。

iOS:

完成here 所述的所有步骤后,您的 XCode 项目路径中将拥有一个文件夹 RNLinkedinLogin

LinkedinLogin.m 文件放入Build Phases -> Compiled Sources

这两个文件都有旧的导入语法,但自从 react native 0.40 及更高版本以来,语法已经改变。您必须相应地编辑这些导入。

更改了文件RNLinkedinLogin.m中的导入

 // old syntax
 //#import "RCTEventDispatcher.h"
 // new syntax
 #import <React/RCTEventDispatcher.h>

和文件'RNLinkedinLogin.h`中的导入

 //#import "RCTBridgeModule.h"
 #import <React/RCTBridgeModule.h>

您的项目现在可以正确编译了。

祝你好运, 汤姆

【讨论】:

    猜你喜欢
    • 2018-12-20
    • 2019-09-27
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    • 2018-10-22
    相关资源
    最近更新 更多