Для моего проекта я использую пакеты Chopper (^ 3.0.1 + 1) и Moor (^ 2.2.0), но не могу заставить их работать вместе.
В моем В файле database.dart я создал класс ActivityTypeTable, который расширяет таблицу и снабжается аннотацией @DataClassName («ActivityType»). При запуске пакетов flutter pub build_runner build в файле database.g.dart сгенерирован класс ActivityType.
В моем классе rest_client.dart у меня есть метод Chopper @Get, который должен возвращать список объектов ActivityType. Я написал это следующим образом:
@Get(path: '/Activity')
Future<Response<List<ActivityType>>> getActivityTypes(@Query("token") String token, @Query("type") int type);
Когда запускаются пакеты flutter, сборка build_runner запускается, похоже, что chopper_generator не распознает сгенерированный класс ActivityType. Приведенная выше реализация преобразуется в следующий код в файле rest_client.chopper.dart:
@override
Future<Response<List>> getActivityTypes(String token, int type) {
final $url = '/api/Activity';
final $params = <String, dynamic>{'token': token, 'type': type};
final $request = Request('GET', $url, client.baseUrl, parameters: $params);
return client.send<List, List>($request);
}
Тип списка ActivityType опускается, предполагая, что это список типа dynamici c. Это дает мне следующую ошибку: '_$RestClient.getActivityTypes' ('Future<Response<List<dynamic>>> Function(String, int)') isn't a valid override of 'RestClient.getActivityTypes' ('Future<Response<List<ActivityType>>> Function(String, int)').dart(invalid_override)
В моем pubspe c .yaml у меня есть следующие зависимости
dependencies:
flutter:
sdk: flutter
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^0.1.2
firebase_core: ^0.4.3+1
firebase_analytics: ^5.0.9
flutter_svg: ^0.15.0
chopper: ^3.0.1+1
json_annotation: ^3.0.1
get_it: ^1.0.3
provider: ^4.0.1
shared_preferences: ^0.5.6
retrofit: ^1.0.1+1
moor: ^2.2.0
moor_ffi: ^0.3.1
path_provider:
path:
dev_dependencies:
build_runner:
moor_generator: ^2.2.0
json_serializable: ^3.2.0
retrofit_generator: ^1.0.2+2
chopper_generator: ^3.0.3
flutter_test:
sdk: flutter
Предназначено ли описанное поведение, или я должен представить проблему для пакет чоппера на GitHub?