- 前のページでコールバック関数を定義します。これは、現在のページから呼び出される関数です。
例えば、前のページが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();
}
}
- 現在のページでNavigatorを使用して前のページに戻ります。その際、Navigator.pop()メソッドを使用して前のページにデータを渡します。
// 現在のページから前のページに戻る
Navigator.pop(context, 'コールバックデータ');
- 前のページでナビゲーションの戻り値を受け取り、コールバック関数を呼び出します。
// ナビゲーションの戻り値を受け取る
final result = await Navigator.push(
context,
MaterialPageRoute(builder: (context) => CurrentPage()),
);
// コールバック関数を呼び出す
callbackFunction(result);
これで、現在のページから前のページにコールバックを取得することができます。コールバック関数には、戻り値として渡されるデータを処理するコードを記述します。