1
resposta

SetState

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!

1 resposta

Rainer, de boa ?

Cara geralmente a galera coloca pra mudar alguma referencia dentro do setState, como se se tivesse a lista ali dentro e você passaria o value para ela ou alguma outra coisa.