Provider 오버라이드
Riverpod에서는 모든 provider를 오버라이드해 동작을 바꿀 수 있습니다. 테스트나 디버깅, 환경별로 다른 구현을 제공할 때, 나아가 Provider 스코핑에도 유용합니다.
provider 오버라이드는 ProviderContainers/ProviderScopes에서 overrides 매개변수로 지정합니다.
이 매개변수에는 특정 provider를 어떻게 오버라이드할지 알려주는 지시 목록을 넘깁니다.
이 "지시"는 provider에 overrideWithSomething 형태의 메서드를 조합해 만듭니다.
이런 메서드는 여러 가지가 있지만, 모두 이름이 overrideWith로 시작합니다.
예를 들면 다음과 같습니다.
일반적인 오버라이드는 다음과 같습니다.
- ProviderScope
- ProviderContainer
void main() {
runApp(
ProviderScope(
overrides: [
// 오버라이드는 여기에 정의합니다.
// 다음은 "counter provider"가 다른 초기값을
// 사용하도록 오버라이드하는 예시입니다.
counterProvider.overrideWith((ref) => 42),
]
)
);
}
final container = ProviderContainer(
overrides: [
// 오버라이드는 여기에 정의합니다.
// 다음은 "counter provider"가 다른 초기값을
// 사용하도록 오버라이드하는 예시입니다.
counterProvider.overrideWith((ref) => 42),
]
);