Do not use BuildContexts across async gapsの解決法
現象
非同期のメソッド内で画面遷移(Navigator.popなど)をする場合に
波線の警告が出る
警告のドキュメント
解決策
class _Body extends HookConsumerWidget {
const _Body();
@override
Widget build(BuildContext context, WidgetRef ref) {
final isMounted = useIsMounted();
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
MyButton(
text: 'Pop',
backgroundColor: Colors.red,
onPressed: () async {
await Future<void>.delayed(const Duration(seconds: 1));
if (!isMounted()) {
return;
}
//ignore: use_build_context_synchronously
Navigator.pop(context);
},
),
],
),
);
}
}
ファイルや特定のコードを静的解析の対象から除外する
この記事が気に入ったらサポートをしてみませんか?