错误:未为类"Future<List<dynamic>> Function()&quo



我是 flutter 的新手,我真的不知道将 sqlite 数据库与provider一起使用。 虽然我已经创建了一个带有provider的待办事项应用程序,并且我已成功向其添加了sqlite database。但是在获取数据时,我的listViewBuilder小部件中出现错误。

错误:未为类"Future> Function(("定义方法"[]"。

这是我的代码。

database_connection.飞镖

Future<List<Task>>getTasks() async {
await openDb();
final List<Map<String, dynamic>>maps = await _database.query('tasks');
print(maps);
return List.generate(maps.length, (i){
return Task(
id: maps[i]['id'],
name: maps[i]['title'],
date:maps[i]['date'],
isDone: maps[i]['iscomplete'] == 1 ? true: false,
);
});
}

taskData.dart

class TaskData extends ChangeNotifier {
final TaskDatabaseManager taskDatabaseManager = new TaskDatabaseManager();

List<Task> _tasks = [
Task(name: 'Buy coffee'),
Task(name: 'Go Shopping'),
Task(name: 'Go Sleep'),
];
//  UnmodifiableListView<Task> get tasks {
//    return UnmodifiableListView(_tasks);
//
//  }
Future<List>tasks()async {
return await taskDatabaseManager.getTasks();
}

task_tile.飞镖

Widget build(BuildContext context) {
return Consumer<TaskData>(
builder: (context, taskData, child) {
return ListView.builder(
itemCount: taskData.taskCount,
itemBuilder: (context, index) {
return TaskListTile(
taskTitle: taskData.tasks[index].name,
isChecked: taskData.tasks[index].isDone,
checkboxCallback: (checkboxState) {
taskData.updateTask(taskData.tasks[index]);
},
deleteCallback: () {
taskData.deleteTask(taskData.tasks[index]);
},
);
});
},
);
}

任何帮助都会很棒。

检索数据可能有点棘手,因为它通常是异步运行的。这是我建议的流程。

检索初始状态的数据。

final List<Task> _tasks;
@override
void initState() {
super.initState();
_tasks = taskData.tasks();
}

在数据仍在加载时返回占位符(通常是加载指示器(

if (_tasks == null) {
return CircularProgressIndicator(
valueColor: AlwaysStoppedAnimation(const Colors.white),
);
}

数据准备就绪后:

return TaskListTile(
taskTitle: _tasks[index].name,
isChecked: _tasks[index].isDone,
checkboxCallback: (checkboxState) {
taskData.updateTask(_tasks[index]);
},
deleteCallback: () {
taskData.deleteTask(_tasks[index]);
},
);

相关内容

  • 没有找到相关文章

最新更新