Как перезагрузить или вызвать некоторую функцию initState () во флаттере при использовании pop - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь запустить какой-нибудь метод, когда пользователь нажимает кнопку назад или я использую Navigator.pop() на втором экране.

У меня два экрана.

  1. Экран настройки
  2. Экран редактирования

После редактирования я выскакиваю пользователя на первую секунду. Теперь на первом экране я использую SharedPreference. Но мне нужно повторно запустить метод, когда пользователь возвращается к 1-му экрану. Как я могу это сделать?

1 Ответ

1 голос
/ 14 октября 2019

При переходе к экрану Edit с экрана Settings используйте это (на вашем экране Settings)

Navigator.pushNamed(context, "/editScreen").then((_) {
  // you have come back to your Settings screen 
  yourSharedPreferenceCode();
});

Если вы хотите запускать этот код только для некоторого события, котороепроизошло на вашем Edit экране, вы можете использовать метод pop внутри Edit экрана, например

Navigator.pop(context, true); // pass true value

И приведенный выше код должен быть:

Navigator.pushNamed(context, "/editScreen").then((value) {
  if (value) // if true and you have come back to your Settings screen 
    yourSharedPreferenceCode();
});
...