react-native-linkedin-sdk - 无法读取未定义的 属性 'configure' (LinkedInSessionManager.ios.js)
react-native-linkedin-sdk - Cannot read property 'configure' of undefined (LinkedInSessionManager.ios.js)
我已按照描述的所有步骤进行操作 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 项目文件夹,但库中似乎没有 link。
非常感谢任何帮助。
我放弃使用 react-native-linkedin-sdk
。
相反,我成功地实现了这个库 react-native-linkedin-login
然而,如果不进行一些修改,该库将无法工作。
这是我的发现:
Android:
我遵循了所有步骤 here 但我收到以下错误:
错误:项目 :app 声明了从配置 'compile' 到配置 'default' 的依赖关系,它未在项目描述符中声明: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>
您的项目现在可以正确编译。
祝你好运,
汤姆
我已按照描述的所有步骤进行操作 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 项目文件夹,但库中似乎没有 link。
非常感谢任何帮助。
我放弃使用 react-native-linkedin-sdk
。
相反,我成功地实现了这个库 react-native-linkedin-login
然而,如果不进行一些修改,该库将无法工作。
这是我的发现:
Android:
我遵循了所有步骤 here 但我收到以下错误:
错误:项目 :app 声明了从配置 'compile' 到配置 'default' 的依赖关系,它未在项目描述符中声明: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>
您的项目现在可以正确编译。
祝你好运, 汤姆