如何在iOS上注册React Native模块

4

我在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文档中找不到任何信息。

如果有人能帮助我解决问题,我将不胜感激。

1个回答

4
在iOS上,模块会自动注册。桥接器通过查询实现了RCTBridgeModule协议的所有类来完成此操作。
如果您没有看到您的模块,则意味着某些地方缺少内容。
其中一种可能性是您的ObjC类未编译为应用程序目标的一部分。在这种情况下,请打开Xcode并检查您的{your_module}.m是否属于您的应用程序目标。
F8示例应用程序中的F8Scrolling模块为例:

enter image description here


谢谢你的回答。我刚刚找到了问题并解决了 : )。我不得不手动将模块添加到项目中作为库。这基本上是相同的事情(我想?) - NROM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接