React Native iOS开发用Razorpay时NativeEventEmitter报非空参数错误如何解决
React Native iOS Razorpay 模块空值报错解决方案
- 依赖重装校验
进入项目ios目录,执行pod deintegrate && pod install,清除旧的pod缓存后重新安装依赖,确保razorpay相关原生包被正确引入。 - 原生编译资源校验
用Xcode打开ios目录下的.xcworkspace工程文件,找到RazorpayEventEmitter对应的Objective-C实现文件(.m后缀),确认该文件已被加入项目「Build Phases」-「Compile Sources」列表中,缺失则手动拖拽添加。 - 链接逻辑校验
RN 0.60及以上版本默认支持自动链接,先确认package.json中已安装对应版本的react-native-razorpay依赖,若之前做过手动链接操作,先执行npx react-native unlink react-native-razorpay清除旧的手动链接配置,再重新执行pod安装流程。 - 运行时兼容处理
可以在初始化前添加判空逻辑,避免直接抛出运行时错误:import { NativeModules, NativeEventEmitter } from 'react-native'; let razorpayEvents = null; if (NativeModules.RazorpayEventEmitter) { razorpayEvents = new NativeEventEmitter(NativeModules.RazorpayEventEmitter); } - 版本适配校验
若上述操作均无效,确认当前使用的react-native-razorpay版本要求的最低iOS部署版本,将Xcode中项目的「iOS Deployment Target」调整到对应要求的版本(通常为11.0及以上)后重新编译运行。
内容的提问来源于stack exchange,提问作者baiju
相关产品推荐
相关产品推荐

