오늘은 개발하면서 소소하게 알게된 것들을 가볍게 적어봤다.
위젯을 빌드하는 단계에서 뷰모델이 필요할 때는 위젯을 ConsumerStatefulWidget 으로 선언하고, initState를 오버라이딩하여 그 안에서 ref를 참조하면 좋다. 위젯 빌드 함수 안에서 뷰모델을 참조하면 계속해서 로딩이 일어난다.
이번 팀프로젝트를 진행하면서 가장 많이 접한 개념이다. async로 들어오는 상태값을 가지는 프로바이더에서 사용한다.
여기서 반환하는 값을 사용하려면 ref.read(...).when() 을 이용하여 데이터가 들어올 때 작업을 처리한다. 이 함수를 사용하면 파라미터로 데이터가 있을 때, 로딩 중일 때, 오류가 생겼을 때를 분기로 나누어 처리해야 한다.
만약 데이터가 들어왔을 경우만 처리하고 싶다면 whenData() 를 활용한다.
다른 비동기 함수들보다 먼저 실행된다. 특히 initState() 안에서 위젯을 빌드하는 단계에 필요한 가벼운 연산을 처리할 때 사용하면 좋다.