出于某种原因,在我将 Expo Go 和 expo 更新到 SDK 51 后,我收到此错误:
ERROR [TypeError: _this3.sqlite.openDatabase is not a function. (In '_this3.sqlite.openDatabase(_this3.options.database)', '_this3.sqlite.openDatabase' is undefined)]
这是我的database.ts:
import { DataSource } from 'typeorm';
import 'reflect-metadata';
import User from '../Models/User';
import Message from '../Models/Message';
import Dialogue from '../Models/Chats/Dialogue';
import Tab from '../Models/Tab';
import SelfProfile from '../Models/SelfProfile';
import Folder from '../Models/Folder';
import Channel from '../Models/Chats/Channel';
import Branch from '../Models/Chats/Branch';
import Role from '../Models/Chats/Role';
import Group from '../Models/Chats/Group';
import Chat from '../Models/Chats/Chat';
import MainChat from '../Models/Chats/MainChat';
export const dataSource = new DataSource({
database: 'messenger.db',
type: 'expo',
driver: require('expo-sqlite'),
entities: [User, SelfProfile, Message, Tab, Folder, Chat, Branch,
MainChat, Role, Dialogue, Channel, Group],
synchronize: true,
dropSchema: true,
logging: ["error"],
});
我的初始化.tsx:
// some code before
if (!dataSource.isInitialized) {
try {
await dataSource.initialize();
} catch(e) {
console.error(e);
}
}
// some code after
在更新之前,此代码运行良好。我还可以提供一些有关我的代码、包等的附加信息。
我尝试运行:
npx expo-doctor@latest
检查我的项目是否一切正常。
还有这个:
npx expo install --fix
解决我的依赖项问题。
通过“驱动程序”字段的以下配置修复了相同问题(对于世博升级 50 至 51):
import * as SQLite from 'expo-sqlite/legacy';
..
..
..
new DataSource({
type: 'expo',
database,
driver: SQLite,