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

hj_choi님의 프로필 이미지
hj_choi

작성한 질문수

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

Pagination Params 추가하기

restaurant_repository.g.dart 에러가 발생했어요

작성

·

255

0

이번 강의를 다 듣고 코드를 수정하였습니다만

아래 restaurant_repository.g.dart 파일에 pagiante함수에서 queryParameters.addAll(paginationParams?.toJson() ?? <String, dynamic>{});

 

이부분에 toJson이 에러가 납니다. 에러 내용은 paginationParams에 toJson 함수가 없어서 입니다.

해당 강의에서 강사님 코드에서 toJson을 구현하지 않았는데 어떤 부분을 제가 놓친 것인지 모르겠습니다,

@override
Future<CursorPagination<RestaurantModel>> paginate(
    {paginationParams = const PaginationParams()}) async {
  const _extra = <String, dynamic>{};
  final queryParameters = <String, dynamic>{};
  queryParameters.addAll(paginationParams?.toJson() ?? <String, dynamic>{});
  queryParameters.removeWhere((k, v) => v == null);
  final _headers = <String, dynamic>{r'accessToken': 'true'};
  _headers.removeWhere((k, v) => v == null);
  final Map<String, dynamic>? _data = null;
  final _result = await _dio.fetch<Map<String, dynamic>>(
      _setStreamType<CursorPagination<RestaurantModel>>(Options(
    method: 'GET',
    headers: _headers,
    extra: _extra,
  )
          .compose(
            _dio.options,
            '/',
            queryParameters: queryParameters,
            data: _data,
          )
          .copyWith(baseUrl: baseUrl ?? _dio.options.baseUrl)));
  final value = CursorPagination<RestaurantModel>.fromJson(
    _result.data!,
    (json) => RestaurantModel.fromJson(json as Map<String, dynamic>),
  );
  return value;
}

답변 2

0

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

아.. 말씀 듣고 다음 강의 들어보니 다음 강의에서 바로 해결해 주셨네요.

이번 강의에는 에러표시가 없었는데 다음 강의에는 있는 것보니 약간에 편집 차이 같습니다.

 

감사합니다!!!

0

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

안녕하세요!

제 코드상에서는 PaginationParams의 toJson이 잘 구현 돼있습니다.

import 'package:json_annotation/json_annotation.dart';

part 'pagination_params.g.dart';

@JsonSerializable()
class PaginationParams {
  final String? after;
  final int? count;

  const PaginationParams({
    this.after,
    this.count,
  });

  PaginationParams copyWith({
    String? after,
    int? count,
  }) {
    return PaginationParams(
      after: after ?? this.after,
      count: count ?? this.count,
    );
  }

  factory PaginationParams.fromJson(Map<String, dynamic> json) =>
      _$PaginationParamsFromJson(json);

  Map<String, dynamic> toJson() => _$PaginationParamsToJson(this);
}

중간에 강의를 놓치신 것 같네요!

감사합니다!

hj_choi님의 프로필 이미지
hj_choi

작성한 질문수

질문하기