下のタブナビゲーションから呼び出され、initState 関数を実行するページがあり、ボタンをクリックして詳細と実行するアクションがあるページに移動しますが、元のページに戻るために [戻る] ボタンをクリックしても、initState が再度実行されません。Flutter はページを一番上に配置してもページを破棄しないため、NAV はメニュー内にないため新しいページにないため、戻るボタンをクリックしたときに initState を再度実行するにはどうすればよいですか。または、[戻る] ボタンから移動してデータを更新する必要があるコードを実行することをリッスンする別の方法はありますか。
どんな助けでも大歓迎です。
ベストアンサー1
ポップを聴くとウィルポップスコープ(ユーザーが囲んでいる [ModalRoute] を閉じる試みを拒否するコールバックを登録するウィジェットを作成します。 -> ドキュメントより):
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () {
print('Backbutton pressed (device or appbar button), do whatever you want.');
//trigger leaving and use own data
Navigator.pop(context, false);
//we need to return a future
return Future.value(false);
},
child: Scaffold(
...
),
);
}
うまくいけば、あなたの質問を正しく理解し、それが役立つでしょう :)!