我正在使用react-native-oauth
并在尝试授权时收到此错误(请参阅底部的红色图片)。我搜索过,发现只有similar unanswered question。我查看了源代码并在第954行找到了where the error is raised,似乎是因为moduleIDs.count
应该等于methodIDs.count
和paramsArrays.count
:
if (RCT_DEBUG && (moduleIDs.count != methodIDs.count || moduleIDs.count != paramsArrays.count)) {
RCTLogError(@"Invalid data message - all must be length: %zd", moduleIDs.count);
所以,仍然在the source中,我寻找这些对象,并在第943-945行找到它们,并且它们正在使用RCTConvert,其函数“...都接受JSON值作为输入和将它映射到本机Objective-C类型或类。“ - React's docs
所以看起来这是一个与转换和/或网络相关的错误。但我对这些领域基本上没有任何知识,并且觉得我已经遇到了调查的障碍,并且想知道是否有人对前进有任何想法。成为React Native的新手并且从未做过任何Objective-C无法帮助我。
此外,这是我的代码生成错误。
import OAuthManager from 'react-native-oauth';
import {
Alert
} from 'react-native'
var env = require('../environment.js')
const config = {
facebook: {
client_id: env.getKey("FB_ID"),
client_Secret: env.getKey("FB_SECRET")
}
}
const manager = new OAuthManager('myAppName')
manager.configure(config);
exports.authWithFb = () => {
manager.authorize('facebook')
.then(resp => Alert.alert('response!' + resp))
.catch(err => Alert.alert('error msg here: ' + err));
}
我猜这个未定义的错误与RCTBridge错误有关但不确定。您可以在下面看到我警告manager.authorize
的错误。 TypeError: undefined is not an object (evaluating 'fn')
:
编辑:
当我尝试警告config
对象时,我收到一条错误,指出无法对其子对象进行字符串化。
当在chrome调试器中查看控制台时,我得到“无法读取属性'configureProvider'未定义”而configureProvider()
是react-native-oauth
使用的,所以看起来管理器设置不正确所以也许我没有很好地链接图书馆。已检查链接是否有效。
我正在深入研究错误,这似乎是来自NativeModules.OAuthManager
的承诺/回调相关问题。捕获的错误是:TypeError: Cannot read property 'authorize' of undefined
。当我跳进堆栈跟踪时,我发现:
非常感谢任何帮助,谢谢。
答案 0 :(得分:2)
所以对我来说,出现问题的是react-native-oauth
的设置问题,因为我已经回归到我的代码没有其他依赖项(我也安装了Firestack)并设置了一切在react-native-oauth的文档之后再次从头开始。我意识到在iOS / XCode方面有一个步骤我错过了,因为当我最初尝试时我找不到文件所以只是跳过了这一步:
接下来,导航到项目设置的相邻“Build Phases”部分,找到“Link Binary with Library”下拉列表,展开它,然后单击“+”将libOAuthManager.a添加到列表中。
我得到的错误是从这里删除了一些步骤,但我确定以某种方式连接。经验教训:不要试图同时做太多事情,也不要跳过所需的步骤。
答案 1 :(得分:1)
当您将一些错误的数据发送到本机端时,您将收到此错误。例如,如果你应该传递字符串但是你传递了一个对象。
请控制您。config
变量。
https://www.npmjs.com/package/react-native-oauth
我猜你在本机端发送了一些错误的数据