Flutterで現在のページから前のページにコールバックを取得する方法


  1. 前のページでコールバック関数を定義します。これは、現在のページから呼び出される関数です。

例えば、前のページがStatefulWidgetを使用している場合、Stateクラス内にコールバック関数を定義します。

class PreviousPage extends StatefulWidget {
  @override
  _PreviousPageState createState() => _PreviousPageState();
}
class _PreviousPageState extends State<PreviousPage> {
  void callbackFunction(data) {
    // コールバック関数の処理
    print('コールバック関数が呼ばれました: $data');
  }
  @override
  Widget build(BuildContext context) {
    // ページのビルド
    return Container();
  }
}
  1. 現在のページでNavigatorを使用して前のページに戻ります。その際、Navigator.pop()メソッドを使用して前のページにデータを渡します。
// 現在のページから前のページに戻る
Navigator.pop(context, 'コールバックデータ');
  1. 前のページでナビゲーションの戻り値を受け取り、コールバック関数を呼び出します。
// ナビゲーションの戻り値を受け取る
final result = await Navigator.push(
  context,
  MaterialPageRoute(builder: (context) => CurrentPage()),
);
// コールバック関数を呼び出す
callbackFunction(result);

これで、現在のページから前のページにコールバックを取得することができます。コールバック関数には、戻り値として渡されるデータを処理するコードを記述します。