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

使用expo-notifications调用scheduleNotificationAsync报TypeError非函数错误如何解决

报错根因

出现TypeError: Notifications.scheduleNotificationAsync is not a function,本质是两处配置错误:

  • 导入路径错误:原代码import * as Notifications from 'expo'是Expo旧版本写法,引入的是已被废弃的核心包内置通知API,该API中不存在scheduleNotificationAsync方法
  • 方法参数缺失:scheduleNotificationAsync需要传入通知内容、触发规则两类必填配置,仅传入单块内容配置也会导致调用异常
修复操作步骤
  • 安装独立通知依赖:在项目根目录执行npx expo install expo-notifications,新版Expo已将通知能力从核心包拆分为独立模块,无法通过核心包直接调用相关方法
  • 修正导入语句:将原有从expo包的导入,替换为从独立通知模块导入的写法:
    // 错误导入写法
    // import * as Notifications from 'expo';
    
    // 正确导入写法
    import * as Notifications from 'expo-notifications';
    
  • 补全方法调用的必填参数:完整可运行的示例代码如下,其中trigger为通知触发规则,可根据业务需求修改为定时、固定时间点等不同触发逻辑:
    import * as Notifications from 'expo-notifications';
    
    // 配置前台通知展示规则,Android端需依赖该配置初始化通知渠道
    Notifications.setNotificationHandler({
      handleNotification: async () => ({
        shouldShowAlert: true,
        shouldPlaySound: true,
        shouldSetBadge: false,
      }),
    });
    
    const enableNotifications = async () => {
      await Notifications.scheduleNotificationAsync({
        content: {
          title: 'Notification',
          body: 'This is a notification'
        },
        // 示例为1秒后触发通知
        trigger: { seconds: 1 }
      });
    }
    

内容的提问来源于stack exchange,提问作者Shreyashi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 12:36:03