Expo集成OneSignal时提示Property 'setAppId'不存在的问题求助
解决OneSignal setAppId类型错误的方案
遇到这个错误,核心原因是你安装的react-native-onesignal版本和文档里的API不匹配,或者类型定义未正确加载,按下面步骤排查:
检查版本并匹配API
打开项目根目录的package.json,查看react-native-onesignal的版本:- 如果是v4及以下版本:文档用的是v5+的API,你需要把代码里的
OneSignal.setAppId("MyAppId")改成OneSignal.init("MyAppId") - 如果是v5及以上版本:继续下面的步骤
- 如果是v4及以下版本:文档用的是v5+的API,你需要把代码里的
修复类型定义或缓存问题
- 重新安装最新版依赖:
npm install react-native-onesignal@latest # 或者用yarn yarn add react-native-onesignal@latest - 清除Expo缓存并重启项目:
expo r -c - 如果用VSCode开发,重启TypeScript语言服务:按下
Ctrl+Shift+P(Mac是Cmd+Shift+P),输入TypeScript: Restart TS Server回车
- 重新安装最新版依赖:
额外注意
Expo集成OneSignal不能直接用Expo Go,必须使用Expo Dev Client或者切换到裸Workflow,否则即使代码正确也无法正常运行通知功能。
内容的提问来源于stack exchange,提问作者Anas Hafidi
相关产品推荐
相关产品推荐

