React Native启动报new NativeEventEmitter缺少addListener等方法警告如何解决
报错原因
React Native 0.65及以上版本强化了NativeEventEmitter的入参校验,当你传入的原生模块没有实现addListener和removeListeners两个必填方法时,就会抛出这两个警告。
修复方案
分两种场景处理:
- 原生模块是自己开发的
直接在对应原生模块的代码里补全两个空实现的方法即可,不会影响原有功能:
安卓端示例(Kotlin):
iOS端示例(Objective-C):@ReactMethod fun addListener(eventName: String) { // 无需额外逻辑 } @ReactMethod fun removeListeners(count: Int) { // 无需额外逻辑 }
补完之后重新编译原生项目即可消除警告。RCT_EXPORT_METHOD(addListener:(NSString *)eventName) {} RCT_EXPORT_METHOD(removeListeners:(double)count) {} - 是第三方依赖导致的问题
临时解决可以直接在项目入口文件(index.js或App.js)的最顶部添加日志屏蔽规则:
想要彻底修复的话,找到出问题的第三方依赖,按照上面自己开发原生模块的修复方案,给依赖的原生代码补全对应方法后重新编译即可。import { LogBox } from 'react-native'; LogBox.ignoreLogs([ '`new NativeEventEmitter()` was called with a non-null argument without the required `addListener` method.', '`new NativeEventEmitter()` was called with a non-null argument without the required `removeListeners` method.' ]);
内容的提问来源于stack exchange,提问作者Muhammad Tahir
相关产品推荐
相关产品推荐

