如何解决颤振中的“未来不是类型”错误?

时间:2020-10-20 10:25:49

标签: database flutter sqflite

我正在快速创建数据库,而在不知不觉中将active添加到程序中。编译器现在显示“ Future not a type”,下面有红线。这是ref的代码:

~/.dartServer/.analysis-driver/

有人可以帮助删除import 'package:sqflite/sqflite.dart'; import 'package:path_provider/path_provider.dart'; import 'package:path/path.dart'; import 'dart:io'; class Db_Help{ static final _db_name="Work_tasks.db"; static final _db_version=1; static final table="Work Table"; static final task_id="ID"; static final task="Task"; static final bool_check="Value"; static Database _database; Db_Help._private_cons(); static final Db_Help instance=Db_Help._private_cons(); _initDatabase() async{ Directory docu_dir=await getApplicationDocumentsDirectory(); String path=join(docu_dir.path,_db_name); return await openDatabase(path, version: _db_version, onCreate: _onCreate); } Future<Database> get database async{ if(_database!=null) return _database; _database=await _initDatabase(); return _database; } Future _onCreate(Database db, int version) async{ await db.execute(''' CREATE TABLE $table ( $task_id INTEGER PRIMARY KEY, $task TEXT NOT NULL, $bool_check INTEGER) '''); } Future<int> insert(Map<String,dynamic> row) async{ Database db= await instance.database; return await db.insert(table, row); } } (这可能是根本原因)吗? 我不知道该如何删除。

预先感谢:)

1 个答案:

答案 0 :(得分:1)

您需要更改onCreate函数的返回类型。应该是空的,而不是未来。

void _onCreate(Database db, int version) async{
  await db.execute('''
  CREATE TABLE $table (
  $task_id INTEGER PRIMARY KEY,
  $task TEXT NOT NULL,
  $bool_check INTEGER)
  ''');
}