Очистить TextField при переходе на новую страницу

Мне нужно очистить поле при переходе на следующую страницу, но при этом передать данные. При такой записи поле видимо очищается раньше. Как правильно это сделать?

Navigator.push(
                    context,
                    MaterialPageRoute(
                      builder: (context) =>
                          ConfirmationPurple(
                            username: dataController.text,
                            token: mainState.token,
                          ),
                    ),
                  );
                  dataController.clear();
                }

Ответы (1 шт):

Автор решения: ddo5

Navigator.push является асинхронным методом. Асинхронный метод помещается в очередь событий и вызывается только после выполнения всего синхронного кода. Поэтому вы можете очищать контроллер после закрытия страницы СonfirmationPurple т.е.

Navigator.push(...).then((_) => TextEditingController().clear());
→ Ссылка