LoginSignup
0
0

Flutterで"setState() or markNeedsBuild() called during build."に対処した話

Posted at

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);を処理できるようになりました。

参考にさせていただいたサイト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0