Je voudrais obtenir une référence à l'écran que je vais montrer.

Avec ce code:

Navigator.of(context).pop()

En fait, je reviens à l'écran précédent, mais j'aimerais accéder à cette référence pour effectuer un travail.

Comment puis je faire ça? Avec mon expérience iOS fonctionnant dans Swift, j'aurais fait quelque chose comme ça:

var newScreen = Navigator.of(context).pop();
0
Federico Malagoni 5 oct. 2020 à 14:00

1 réponse

Meilleure réponse

Vous ne pouvez pas créer de référence car lorsque vous affichez la "route" actuelle, toutes les données seront supprimées.

Mais vous pouvez renvoyer un résultat pop au parent en attente comme expliqué par docs.

Quelque chose comme:

//When you will dispose the pushed page/route you can pass your result to pop method
Navigator.pop(context, 'This is my new page result');

//In the parent page you will await for the result
final result = await Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => MyPushedPage()),
  );
print(result) //--> This is my new page result
1
E.Benedos 5 oct. 2020 à 12:46