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

Expo React Native中SQLite.openDatabase不是函数的问题求助

解决expo-sqlite中SQLite.openDatabase is not a function错误

以下是几个可行的解决方向:

  • 检查版本兼容性并重新安装依赖
    确保expo-sqlite与你的Expo SDK版本完全兼容,执行以下命令重新安装适配版本:

    npx expo install expo-sqlite
    

    这个命令会自动匹配当前Expo SDK对应的expo-sqlite版本,避免版本不匹配导致的API差异。

  • 改用异步API(针对Web环境或新版本SDK)
    从Expo SDK 48+开始,expo-sqlite推荐使用异步API,同步的openDatabase在Web环境下无法正常工作。修改你的代码为异步模式:

    import * as SQLite from 'expo-sqlite';
    
    async function initDB() {
      try {
        // 异步打开数据库
        const db = await SQLite.openDatabaseAsync('myDatabase.db');
        // 异步执行建表语句
        await db.runAsync(
          'CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)'
        );
        console.log('Table created successfully');
      } catch (error) {
        console.log('Error creating table:', error);
      }
    }
    
    // 初始化数据库
    initDB();
    
  • 清除缓存并重启开发服务
    缓存问题可能导致模块加载异常,执行以下命令清除缓存并重启:

    npx expo start -c
    
  • 确认运行环境
    expo-sqlite的同步openDatabase仅支持iOS和Android原生环境,如果你在Web端测试,必须使用异步API,否则会出现该错误。

内容的提问来源于stack exchange,提问作者C CB CCC

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 14:39:55