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

이순곤님의 프로필 이미지
이순곤

작성한 질문수

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

Rating Pagination

riverpod2.0으로 common의PaginationProvider만들기

작성

·

144

0

@Riverpod(
  keepAlive: true,
)
class PaginationNofifier<T extends IModelWithId,
U extends IBasePaginationRepository<T>>
    extends _$PaginationNofifier {

  final U repository;

  PaginationNofifier({
    required this.repository,
  });

  @override
  CursorPaginationBase build() {
    final state = CursorPaginationLoading();
    paginate();
    return state;
  }

codegenertator를 이용해서 PaginationProvider만들고 있는데 초기값은 build에서 설정은 했는데 repository를 생성자로 해서 받을려고 하는데 아래처럼 생성자 정의를 해도 에러가 나네요.

The class PaginationNofifier must have a default constructor.

다른 곳에서 비슷한 사례를 찾아봐도 기본 인스턴스 프로퍼티 자체를 받는 에제가 없어서 질문드립니다

답변 2

0

이순곤님의 프로필 이미지
이순곤
질문자

감사합니다.
3시간정도 도큐멘트 찾아보면서 해봐도 이건 방법이 없어서 여쭤봤는데 아직 안된다고 하시니 오히려 포기할수있어서 마음이 편하네요 ㅎㅎ

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

아직이라기보단 제 생각엔 앞으로도 안될걸로 생각됩니다. 제가 생각하는 상태관리의 편의성과 riverpod이 생각하는 상태관리가 가야할 방향은 조금 거리가 생긴 것 같습니다.

0

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

안녕하세요!

모든 코드는 한번씩 추상화를 할때마다 자유도를 조금씩 포기합니다.

이 강의를 제작할때 code generation이 있었음에도 저는 사용하지 않았던 이유가 제가 추구하는 스타일과는 맞지 않기 때문입니다.

code generation을 꼭 사용해야만 하는건 아닙니다. 업그레이드의 개념이 아니라 내가 하려는 작업을 code generation이 해결해주고 있다면 사용했을때 유용한 요소라고 볼 수 있습니다. (중복을 없애주기 때문에).

제가 아는 선에선 제가 강의에서 구현하는 상속 스타일을 code generation으로 재현하는 방법은 없는걸로 알고있습니다.

감사합니다!

이순곤님의 프로필 이미지
이순곤

작성한 질문수

질문하기