Riverpod #1: 가장 간단한 StateProvider

Mark Choi
Apr 8, 2023

가장 처음 공부해본 Provider는 StateProvider다.
주로, Primitive Type 1개를 관리하는 아주 간단한 Provider를 만들때 사용한다.

final numberProvider= StateProvider((ref) => 0);
final provider= ref.watch(numberProvider); // numberProvider를 바라보고있는 Provider.

위와 같이, Provider를 선언(numberProvider)할 수 있으며, 위에서 0은 관리되어질 초기값이다.

provider 변수는 numberProvider가 변경될 때마다 UI에 build를 요청한다.

사용할 때, 화면에서 값을 변경하고자 하면 read를 사용한다.
watch를 사용하면 계속 바라보게끔 구독하는 형태이다.

Provider의 notifier를 read하면 해당하는 Provider의 state를 직접 제어하거나, update로 변경될 값을 함수로 제어할 수 있다. 여기서는 람다 형태로 state를 +1 했다.

결과물은 아래와 같다. 영문 설명과 함께 UP, DOWN 버튼을 만들어서 state를 조작하는 예제를 만들어보았다.

--

--