モーダルの再オープン時に状態が残るバグの典型原因と対処
React
フロントエンド
デバッグ
開閉可能なモーダル/ダイアログを再オープンした際に前回の状態が残って初期画面に戻らない場合、原因は次の3つが典型。1) clear/reset関数が一部のstateしかリセットしていない(進行中フラグや遷移モードを表すstateを戻し忘れる)。2) 閉じた後も非同期処理(fetch/OCR/アップロード完了など)が完了時にstateを書き戻し、次回オープン時の初期状態を汚染する。世代カウンタやsessionId/closedRefでガードし、閉じた後の結果は破棄する。3) 閉じる前に経由する確認ダイアログ自体がopenのまま残り次回挙動を壊す。確認ダイアログのopenも明示管理して確定時とモーダル終了時の両方でfalseに戻す。同種のモーダルが複数あれば全てに同じ修正を入れる。