我在 iOS 上遇到了 React Native 模块的问题。我在 Objective-C 中编写了一个模块,并使用 RCT_EXPORT_MODULE(@"tracker");
导出模块并将其公开给 React Native。但是,当我打印出 NativeModules 的内容时,它不包含该模块。
import { NativeModules } from 'react-native';
console.log("Native modules:", NativeModules);
我还用 Java (Android) 编写了一个类似的模块,而且效果很好。但是,对于 Android 模块,我知道你必须在 MainActivity 类中注册它们。我想我错过了与 iOS 类似的东西,但在 React Native 文档中找不到它。
如果有人能帮助我,我将不胜感激。
最佳答案
在 iOS 模块上是自动注册的。
桥通过查询所有实现 RCTBridgeModule
协议(protocol)的类来实现这一点。
如果您没有看到您的模块,这意味着某处缺少某些东西。
一种可能是您的 ObjC 类未编译为应用程序目标的一部分。
在这种情况下,打开 Xcode 并检查您的 {your_module}.m
是否属于您应用的目标。
来自 F8 sample app 的 F8Scrolling
模块示例:
关于android - 如何在 iOS 上注册 React Native 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38048632/