🙂
Flutter AlertDialog での画面遷移でエラーが出る場合
初めに
データの削除機能を、AlertDialogを使って実装した際に
「削除をしますか?」→「はい」or「いいえ」を選択後の画面遷移でエラーが出た為、解決方法の記述です。
解決方法
「はい」「いいえ」等の選択肢を記述しているTextButton
にカーソールを合わせて、
command と .(ドット) を押すと選択肢が出てきます。
その中の、Wrap with builder
を選択して、TextButton
をBuilder
でwrapをしてあげる事で、エラーは消えました!
元のエラーが出たコード
return AlertDialog(
title: Text("削除の確認"),
content: Text("『${book.title}』を削除しますか?"),
actions: [
TextButton(
child: Text("いいえ"),
onPressed: () => Navigator.pop(context),
),
TextButton(
child: Text("はい"),
onPressed: () async {
await model.delete(book);
Navigator.pop(context);
);
エラー解決後のコード
return AlertDialog(
title: Text("削除の確認"),
content: Text("『${image.title}』を削除しますか?"),
actions: [
Builder(
builder: (context) {
return TextButton(
child: Text("いいえ"),
onPressed: () => Navigator.pop(context),
);
}
),
Builder(
builder: (context) {
return TextButton(
child: Text("はい"),
onPressed: () async{
//modelで削除
await model.delete(image);
Navigator.pop(context);
);
終わりに
今回下記の記事を参考にエラーを解決しております。
エラーの原因まで理解したい方は、ぜひ参考にしてください。
Discussion