1
resposta

O formulário não passa a tarefa para a tela inicial

1 resposta

Olá Pedro!

Verifica se você está passando o contexto "context" correto.

Na tela inicial no seu arquivo "Home_Screen", onde você chama a tela de formulário, você pode passar o contexto da seguinte maneira, para diferenciar, o instrutor alterou o nome do primeiro contexto para "contexNew":

Navigator.push(
  context,
  MaterialPageRoute(
    builder: (contextNew) => FormScreen(taskContext: context),
  ),
);

E no arquivo "Form_Screen", você pode adicionar um parâmetro taskContext no construtor da classe FormScreen e passar o contexto da tela inicial ao instanciar a tela de formulário.

Aqui está um exemplo de como fazer isso:

class FormScreen extends StatefulWidget {
  final BuildContext taskContext;

  const FormScreen({Key? Key, required this.taskContext}) : super(key: key);

  // Restante do código da classe
}

Dessa forma, você estará passando o mesmo contexto da tela inicial para a tela de formulário. Agora, você pode utilizar o taskContext ao invés do context, onde você chama TaskInherited.of(context).newTask:

TaskInherited.of(widget.taskContext).newTask(nameController.text, imageController.text, int.parse(difficultyController.text));

Com essas alterações, o formulário deverá passar a tarefa para a tela inicial corretamente.

Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos!