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
相关产品推荐
相关产品推荐

