작성
·
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
아.. 말씀 듣고 다음 강의 들어보니 다음 강의에서 바로 해결해 주셨네요.
이번 강의에는 에러표시가 없었는데 다음 강의에는 있는 것보니 약간에 편집 차이 같습니다.
감사합니다!!!
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);
}
중간에 강의를 놓치신 것 같네요!
감사합니다!