我一直在努力使用 flutter 中的 sqflite 設定一個 sqlite 資料庫。每次我呼叫資料庫的 getter 方法時,代碼都會生成一個新的資料庫實體。這是代碼:
class DatabaseProvider {
DatabaseProvider._();
static final DatabaseProvider dbProvider = DatabaseProvider._();
static Database? _database;
Future<Database> get database async => _database ??= await _createDatabase();
}
...
uj5u.com熱心網友回復:
你需要_database在你的 getter 中初始化。所以,把它改成這樣:
Future<Database> get database async {
if (_database == null) {
// initialize database from _createDatabase result.
_database = await _createDatabase();
}
// because _database have beeen initialized above,
// then we can use ! to tell that the _database can't be null.
return _database!;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/382482.html
