해결된 질문
작성
·
147
1
Riverpod을 이용해서 MVVM 구조로 변경중인데 하나의 뷰모델에서 여러개의 상태관리가 필요한 경우에는 어떻게 해야되나요?
올려주신 riverpod을 이용한 mvvm 코드를 참고해봤는데 각 뷰 별로 상태가 한개라 어려움이 있습니다.
여러개 상태를 하나의 객체로 만들어서 관리를 해야될까요?
답변 1
2
안녕하세요.
Riverpod 버전 코드에 product_view_state.dart
파일을 보시면, isBusy
, count
, colorIndex
3가지 상태를 하나의 상태 클래스로 관리하고 있습니다. 말씀해 주신 여러개 상태를 하나의 객체로 만들어 관리하는 방법이라고 이해하시면 될 것 같습니다.
class ProductViewState extends BaseViewState {
const ProductViewState({
required this.isBusy,
required this.count,
required this.colorIndex,
});
@override
final bool isBusy;
/// 선택한 수량
final int count;
/// 선택한 색상
final int colorIndex;
ProductViewState copyWith({
bool? isBusy,
int? count,
int? colorIndex,
}) {
return ProductViewState(
isBusy: isBusy ?? this.isBusy,
count: count ?? this.count,
colorIndex: colorIndex ?? this.colorIndex,
);
}
}
위와 같이 하나의 상태 객체를 만들어 진행해 보시고, 만약 여러 Notifier에서 동기화가 필요한 상태가 있다면 별도 Notifier를 만들어 builder 함수에서 동기화 시키는 방향으로 진행하시면 될 것 같습니다. (상태 관리 강의 Riverpod → Riverpod 상호 작용 챕터 참고)
감사합니다 🙂