【发布时间】:2023-09-17 05:57:01
【问题描述】:
我正在使用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
所以这似乎是一个与转译和/或网络相关的错误。但是我在这些领域的知识基本上是 0,我觉得我在调查时遇到了障碍,想知道是否有人对前进有任何想法。刚接触 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。当我跳入堆栈跟踪时,我发现:
非常感谢任何帮助,谢谢。
【问题讨论】:
标签: ios objective-c oauth react-native bridge