You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native Firebase v4.0通知模块:监听通知打开代码解析错误求助

解决react-native-firebase v4.0 onNotificationOpened的解析错误问题

你这是把TypeScript的参数类型标注写法用到普通JavaScript项目里啦,这就是触发"Unexpected token, expected :"错误的核心原因!

你代码里的notificationOpen: NotificationOpen是TypeScript里用来指定参数类型的语法,但如果你的项目是纯JavaScript环境(没配置TypeScript编译支持),JS解析器根本不认识这种写法,自然就报错了。

给你两种针对性的修复方案:

1. 纯JavaScript项目(最常见场景)

直接去掉参数的类型标注,改成标准的JS箭头函数写法就行:

componentDidMount() {
  this.notificationOpenedListener = firebase.notifications().onNotificationOpened(notificationOpen => {
    // 获取触发的action和通知内容
    const action = notificationOpen.action;
    const notification = notificationOpen.notification;
    
    // 这里写你处理通知被打开的逻辑
    console.log('用户通过这个action打开了通知:', action);
    console.log('通知内容:', notification);
  });
}

2. 如果是TypeScript项目

要是你确实想用TypeScript的类型提示,得先确保项目配置了TS支持:

  • 安装对应版本的TypeScript和@types/react-native-firebase(注意要匹配v4.0的版本)
  • 在Babel配置文件(比如babel.config.js)里添加@babel/preset-typescript预设
  • 完成配置后,你原来的类型标注写法就可以正常使用了,注意确保NotificationOpen类型能被正确识别

另外别忘了在组件卸载时移除监听器,避免内存泄漏:

componentWillUnmount() {
  if (this.notificationOpenedListener) {
    this.notificationOpenedListener();
  }
}

内容的提问来源于stack exchange,提问作者R. Favero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:26:23