개발노트

56. [Flutter] Provider에 Parameter 값 넘겨주기(with FamilyAsyncNotifier) 본문

앱 개발/Flutter

56. [Flutter] Provider에 Parameter 값 넘겨주기(with FamilyAsyncNotifier)

mroh1226 2024. 1. 25. 17:25
반응형

Provider 를 사용하는 환경에서 Notifier에 특정 값이 필요하다면, FamilyAsyncNotifier와 Provider.family를 사용하여, Parameter 값을 받아올 수 있습니다.

 

즉, Provier에 값을 넘겨 주고 싶을 때 .family를 사용하면됩니다.


값 받아오는 문서 소스(Provider 쪽)
class VideoPostViewModel extends FamilyAsyncNotifier<void, String> {
  late final VideosRepository _repository;
  late final _videoId;
  @override
  FutureOr<void> build(String videoId) {
    _videoId = videoId;
    _repository = ref.read(videosRepo);
  }

  Future<void> likeVideo() async {
    final user = ref.read(authRepo).user;
    await _repository.likeVideo(_videoId, user!.uid);
  }
}

final videoPostProvider =
    AsyncNotifierProvider.family<VideoPostViewModel, void, String>(
        () => VideoPostViewModel());

- class extends 부분: FamilyAsyncNotifier<void,ParaType>{..}

- 초기화 FutureOr 부분: FutureOr<void> build(ParaType PratName)

- Provider 부분:  AsyncNotifierProvider.family(ViewModel,void,ParaType>

 

값 넘겨주는 문서 소스 (Provider 사용하는 쪽)
  void onLikeTap() {
    ref.read(videoPostProvider(widget.videoData.id).notifier).likeVideo();
  }

- Parameter 값 넘겨주기:  ref.read(PrivoderName(ParaValue).notifier).Method();

반응형
Comments