Hkm Sadek
Hkm Sadek

Reputation: 3209

How to reload or call some function initState() in flutter while using pop

I am trying to run some method when user click back or I use Navigator.pop() in second screen.

I have two screens.

  1. Setting screen
  2. Edit screen

After editing I pop user to first second. Now in first screen I use SharedPreference. But I need to re run a method when user comes back to 1st screen. How can I do this?

Upvotes: 10

Views: 11639

Answers (1)

CopsOnRoad
CopsOnRoad

Reputation: 268404

While navigating to Edit screen from Settings screen, use this (inside your Settings screen)

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

If you only want to run this code on some event that happened on your Edit screen, you can make use of pop method inside Edit screen like

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

And above code should be:

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

Edit:

async-await would look something like:

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

Upvotes: 12

Related Questions