2024/05/02
go_routerを設定したが、謎の挙動に苦しんだ。
なぜかredirectが2回呼ばれてしまう。
たとえばブラウザで /login にジャンプすると、まず/loginへのredirect判定が呼ばれ(これはOK)、そしてloginページが表示されたあとに、なぜかもう一度redirectが呼ばれる。
しかもその時のpathは / 。
ソースを追ったりネットを検索したりして長時間かけたがどうしても理由が分からず。
しかし結局は、redirectが2回呼ばれるのは画面のbuildが2回走るということが原因だった。
これはソースの問題ではなく、Flutterの仕様(バグ)“デバッグで実行すると2回buildが走る事象”のせいだった。。。
実際、Webに配備して実行するとおかしな症状は起きない。
この意味不明な挙動の原因が分かるまでとても時間を使ってしまった。。。
しかもデバッグすると起きてしまう症状なので、動作確認が難しい。
Flutterは楽しいのだが、こういうのが多くて時間を浪費するのが辛いところだ。
※開発日記は当時の記録をもとに作成し、必要に応じて加筆・補足しています
この記事はアイディア整理ソフト「idea Lane」の開発記録です
↓どなたでも、ユーザ登録だけで無料ですぐに使えます↓
テキストベースの思考整理ツール「idea Lane」
0
コメント / Comment