🙌

【Flutter】 ConsumerWidgetを使っているがこのWidgetにinitState()を加えたい

2024/05/31に公開

背景

ConsumerWidgetを使用しているが、本ConsumerWidgetに入ったタイミングで
特定の処理を行いたいなぁと思っていまして方法を見つけたのでここに記します。

ConsumerStatefullWidgetを使用する

このWidgetを使用すると状態管理を行えますし、initState()の処理も行えます。

final fooProvider = Provider((ref) => "foo");

class FooWidget extends ConsumerStatefulWidget {
  const FooWidget({Key? key}) : super(key: key);

  @override
  FooWidgetState createState() => FooWidgetState();
}

class FooWidgetState extends ConsumerState<FooWidget> {
  @override
  void initState() {
    super.initState();

    ref.read(fooProvider); // foo
  }

  @override
  Widget build(BuildContext context) => Text(
    ref.watch(fooProvider),
  )
}

Discussion