Измельчитель флаттера использует сгенерированный класс в качестве типа ответа - PullRequest
0 голосов
/ 11 января 2020

Для моего проекта я использую пакеты 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?

...