Estou tentando fazer o desafio de salvar o nível da tarefa.
No botão de upar de nivel coloquei o seguinte:
ElevatedButton(
onPressed: () {
TaskDao().upgradeLevel(widget).then((value) => setState((){}));
},
)
No DAO da Task criei essa função para atualizar o nivel no banco:
Future upgradeLevel(Task task) async {
final Database db = await getDatabase();
final Map<String, dynamic> mapOfTask = toMap(task);
mapOfTask[_level] += 1;
return await db.update(_tableName, mapOfTask,
where: '$_name = ?', whereArgs: [task.name]);
}
Contudo, o setState não atualiza o widget da task na tela inicial, eu clico e o nível continua o mesmo. O nível é atualizado corretamente pelo DAO. Quando aperto no botão de refresh (ou hot restart) o nível atualiza, mas gostaria que mudasse automaticamente.
Já tentei sem a combinação Future e then porém também não funcionou
Toda ajuda é bem vinda!