[Flutter] (MVVM 활용) PostDetailViewModel을 Provider 통해서 관리 해보자. - 10

2024. 11. 22. 16:46·Flutter/MVVM 활용
lib/providers/state_noti_provider/post_detail_view_model_provider.dart
// 새로운 개념 추가

import 'package:class_riverpod_mvvm/providers/provider/post_respisitory_provider.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../../models/post.dart';
import '../../view_models/post_detail_view_model.dart';

final postDetailViewModelProvider
  = StateNotifierProvider.family<PostDetailViewModel, AsyncValue<Post>, int>((ref, postId) {
    // 1. postId 값은 family 를 통해 전달받은 외부 매개변수로, 특정 게시글을 식별하는데 사용 된다.
    final postRepository = ref.read(postRepositoryProvider);
    return PostDetailViewModel(postRepository, postId);
});

 


1. StateNotifierProvider.family<T, S, A> 형식으로 정의합니다.

  - T: StateNotifier 타입 (PostDetailViewModel)
  - S: 관리할 상태의 타입 (AsyncValue<Post>)
  - A: 외부에서 전달받을 매개변수의 타입 (int)

 

 2. ref.read(postRepositoryProvider):

  - `ref`는 Provider 간의 의존성을 관리하고 주입하는 객체입니다.
  - `postRepositoryProvider`를 읽어서 해당 Provider로부터 postRepository 인스턴스를 가져옵니다.


3. return PostDetailViewModel(postRepository, postId):

  - ViewModel을 생성하는 과정에서 postRepository와 postId를 주입하여, 
    해당 포스트의 상세 정보를 관리할 수 있도록 합니다.

'Flutter > MVVM 활용' 카테고리의 다른 글

[Flutter] (MVVM 활용) 게시글 생성 화면의 뷰 모델(PosCreateViewModel) 만들어 보자  (0) 2024.11.22
[Flutter] (MVVM 활용) PostDetailView 화면 완성 하기 - 11  (0) 2024.11.22
[Flutter] (MVVM 활용) PostDetailViewModel 만들기(상세보기 화면 데이터 관리) - 9  (0) 2024.11.19
[Flutter] (MVVM 활용) PostListPage 화면을 만들어 보자 그런데 뷰 모델은 어떻게 가지고 올까? - 8  (0) 2024.11.19
[Flutter] (MVMM 활용) viewModel 을 관리하는 Provider 계열을 만들어 보자 - 7  (0) 2024.11.19
'Flutter/MVVM 활용' 카테고리의 다른 글
  • [Flutter] (MVVM 활용) 게시글 생성 화면의 뷰 모델(PosCreateViewModel) 만들어 보자
  • [Flutter] (MVVM 활용) PostDetailView 화면 완성 하기 - 11
  • [Flutter] (MVVM 활용) PostDetailViewModel 만들기(상세보기 화면 데이터 관리) - 9
  • [Flutter] (MVVM 활용) PostListPage 화면을 만들어 보자 그런데 뷰 모델은 어떻게 가지고 올까? - 8
미로910
미로910
개발자를 꿈꾸는 민경이의 기록 블로그
  • 미로910
    개발 note
    미로910
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 설치 메뉴얼
      • HTML
      • JAVA
        • Java 기초
        • Java 응용
        • 자료구조
        • HTTP
        • JSP 프로그래밍
      • MySQL
        • MySQL 기본
        • 1일 1쿼리
      • CSS
      • Spring boot
      • JS
        • 게시판 만들기
      • Git
      • Flutter
        • MVVM 활용
        • 심화 버전
        • 1일 1 Flutter
      • 디자인 패턴의 활용
      • error note
      • My Project
        • [졸작] LLM 기반 특허 유사도 분석 시스템
        • 도서 관리 프로그램 (final project)
        • amigo
        • 친구 매칭 프로그램(FMP)
      • Python
      • 딥러닝
      • 네트워크
      • 공부 노트
        • 연구회
        • 자료구조
      • 기타
  • 블로그 메뉴

    • 홈
    • 전체보기
    • -----------------------
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Flutter
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
미로910
[Flutter] (MVVM 활용) PostDetailViewModel을 Provider 통해서 관리 해보자. - 10
상단으로

티스토리툴바