인프런 커뮤니티 질문&답변

dlckdals9467님의 프로필 이미지
dlckdals9467

작성한 질문수

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

RestaurantDetail 캐싱하기

수업 중 질문

작성

·

319

0

provider로 pagination을 하는데 이렇게 전체 데이터를 불러오는 경우를 제외한

  1. 카테고리 별로 불러오기

  2. 검색으로 불러오기

위의 경우가 있을 때 보통 어떻게 하나요 같은 provider를 쓴다면 state를 초기화하고 prameter를 다르게 하여 불러오나요

아니면 카테고리별 검색 별 provider를 따로 만들어서 불러오나요?

답변 1

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요!

다양한 방법이 있습니다.

이 강의에서는 OOP를 이용한 코드 일반화의 한가지 방법을 알려주는 것 뿐입니다.

결국 서버의 요구사항마다 다릅니다.

일반화된 코드를 실행할때 어떤 부분에서 '필터' 관련 로직을 어디에 작성해야하는지 먼저 판다해야합니다.

그럼 해당 위치에서 특정 값이 존재한다는 '가정'을 해주는 코드를 작성하시면 됩니다.

예를들어서 Query를 이용할 계획이라면 Query 모델에 extraField: Map<String, dynamic> 형식으로 추가 필드를 받을 수 있습니다.

또는 retrofit이 결국 toJson을 실행하는 속성을 이용해서 Query 관련 모델이 toJson이 정의된 interface를 implement하게 할수도 있습니다.

이외에도 여러가지 창의적인 방법이 충분히 존재 할 수 있습니다.

감사합니다!

dlckdals9467님의 프로필 이미지
dlckdals9467
질문자

제 옅은 지식으로 인한 부족한 질문에 대한 답변 감사합니다.

추가로 궁금한 것이 서버에서 카테고리에 맞는 데이터를 보내주게되면 강의에서 나온 일반화된 PaginationProvider를 사용하여 기존전체 데이터를 지우고 카테고리 데이터를 넣고 다시 전체 데이터를 요청하면 카테고리 데이터를 지우고 state에 전체데이터를 넣어주고 이러한 방법도 괜찮을까요??

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

중급 강의 구조에서는 그런 방법이 일반적으로 맞다고 볼 수 있습니다. 기존 데이터를 기억 해둬봤자 크게 유용하지 않습니다. 만약 기억해두고싶다면 필터별로 family를 만들수도 있겠습니다.

dlckdals9467님의 프로필 이미지
dlckdals9467
질문자

아 그렇군요 감사합니다 ㅠㅠ 궁금증이 해결되었습니다

dlckdals9467님의 프로필 이미지
dlckdals9467

작성한 질문수

질문하기