📌  相关文章
📜  调用 'RCTBridgeModuleNameForClass' 没有匹配的函数 (1)

📅  最后修改于: 2023-12-03 14:57:44.736000             🧑  作者: Mango

调用 'RCTBridgeModuleNameForClass' 没有匹配的函数

当在React Native开发中出现调用 'RCTBridgeModuleNameForClass' 没有匹配的函数的错误提示时,通常是因为在引入原生模块时出现问题。

原因
  1. 在Native Modules中没有定义模块名字。需要在模块中实现RCT_EXPORT_MODULE()宏定义,并且可以在括号中提供一个模块名字。如果没有提供模块名字,则会默认使用类名作为模块名称。
  2. 在Native Modules中引入模块但模块名称错误。模块名称在JS模块和Native模块之间需要保持一致。如果在JS中调用的模块名称与Native模块的名称不一致,就会出现此错误。
解决方法
  1. 首先,确保在Native模块中有RCT_EXPORT_MODULE()宏定义,并且提供了正确的模块名称。
#import "MyNativeModule.h"
   @implementation MyNativeModule
   RCT_EXPORT_MODULE(MyNativeModule);
   // ...
   @end
  1. 确认JS代码中调用的模块名称与Native模块的名称一致。在JS代码中的调用方法如下:
import { NativeModules } from 'react-native';
   const { MyNativeModule } = NativeModules;

如果以上步骤都无法解决问题,那么可以尝试升级React Native,或者检查是否有其他错误导致找不到Native模块。