コンテンツにスキップ

Riverpod をインストールする

DI とかいろいろできるライブラリらしい。

flutter_riverpod | Flutter package

インストールする

Getting started | Riverpod

1
2
3
4
5
6
7
8
$ flutter pub add flutter_riverpod
$ flutter pub add riverpod_annotation
$ flutter pub add dev:riverpod_generator
$ flutter pub add dev:build_runner
$ flutter pub add dev:custom_lint
$ flutter pub add dev:riverpod_lint
$ flutter pub add json_annotation
$ flutter pub add dev:json_serializable

analysis_options.yamlに以下をマージする。

1
2
3
analyzer:
  plugins:
    - custom_lint

main.dartmain()ProviderScopeを挟むようにする。

1
2
3
4
5
import 'package:flutter_riverpod/flutter_riverpod.dart';

void main() {
  runApp(const ProviderScope(child: MyApp()));
}

State, Maintainer, Provider

状態管理を構成する 3 つの要素とそれらが解決したい状態管理の課題

Provider

Provider は状態を保存したりできる。依存性注入の役割を果たしたり、シングルトンに代わるものらしい。

Providers | Riverpod

Reading a Provider | Riverpod

Widget で Provider を使用したい場合、継承するクラスを以下に置き換える必要がある。

親クラス(変更前) 親クラス(変更後)
StatelessWidget ConsumerWidget
StatefulWidget ConsumerStatefulWidget
State ConsumerState

StateError (Bad state: No ProviderScope found)が出る

main.dartmain()ProviderScopeを挟むようにする。