React Native 调用原生模块为什么没反应?

Mr.建利 阅读 4

我在 Android 上写了个 Native Module,导出方法也加了 @ReactMethod,但在 JS 里调用完全没反应,也不报错。

试过重启 Metro、重装 App,还是不行。JS 这边是这样调的:

import { NativeModules } from 'react-native';
const { MyCustomModule } = NativeModules;
MyCustomModule.doSomething(); // 这行执行了但原生没动静

原生那边方法签名是对的,也注册到 Package 里了,是不是漏了什么关键步骤?

我来解答 赞 2 收藏
二维码
手机扫码查看
1 条解答
Mr-敏涵
Mr-敏涵 Lv1
我以前也被这个问题折磨得够呛。首先检查下原生模块的 getName() 方法,这个返回的名字要和 JS 里用的一模一样,不然根本连不上。

然后在 Android 里别忘了在 MainApplication.java 里把你的 module 添加到 getPackages() 里面去。我就犯过这错,明明写了 module 就是没反应。

还有一个容易忽略的地方:如果你的方法是有返回值的,记得加上 @ReactMethod(isBlockingSynchronousMethod = true) 这个参数,不然异步调用可能会有问题。

最后提醒一下,有时候 gradle 缓存也会捣乱,建议 clean 下项目再试试。别走弯路了,就从这几个地方挨个排查吧,肯定能找出问题来。
点赞
2026-03-29 15:02