INDEX / JOURNAL / LOG-006
VOL. 2026 · ENGINEERING
SERIES 6 / 7
LOG-006 · ASYNC GAP

await をまたいだら、その画面はもう無いかもしれない

PUBLISHED
2026 · 07 · 17
AUTHOR
MIGIWAYA
READ
約 2 分
TAGS
#flutter#dart

§ 01GAP

DART
Future<void> _save() async {
await repository.save(draft);
// ← ここに来たとき、画面はもう閉じられているかもしれない
Navigator.of(context).pop();
}

§ 02MOUNTED

DART
Future<void> _load() async {
final data = await repository.fetch();
if (!mounted) return; // await をまたいだので、生きているか確認
setState(() => _data = data);
}

§ 03CONTEXT-MOUNTED

DART
Future<void> _save() async {
final ok = await repository.save(draft);
if (!context.mounted) return; // await をまたいだので確認
if (ok) {
Navigator.of(context).pop();
} else {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('保存に失敗しました')),
);
}
}

§ 04SUMMARY

脚注 · NOTES
  1. [1]
  2. [2]
同シリーズ · Flutter の基礎を実コードで学ぶ
§ + RELATED すべて見る →
INQUIRY
CONTACT
LOCATION
STATUS
Active / Open
ESTABLISHED
2024 · 5 · 5
FORM