Flutter 初心者のYukiです。
Google Developer Student ClubsのSolution Challengeに挑戦する際、Flutterに初挑戦しました。
その最中に遭遇したエラーとその対処法について記事にしました。
遭遇したエラーについて
遭遇したエラー自体はこのようなものでした。
setState() or markNeedsBuild() called during build.
このエラーの原因はbuild後に実行されなければいけない処理がbuild最中に実行されていたことが原因です。
具体的には、Navigator.pop()をState変更検知と同時に行おうとしていたところ、build後でないと実行できないという状況でした。
対処方法について
次のように書くことで、build後に実行する処理として登録できるようになりました。
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
Navigator.pop(context);
});
これで、build直後のコールバックとして、Navigator.pop(context);を処理できるようになりました。
参考にさせていただいたサイト