Аргумент Список не может быть назначен параметру типа Список - PullRequest
0 голосов
/ 06 января 2019

Я столкнулся с ошибкой, которую не могу понять. Я вызываю службу из действия и устанавливаю новое состояние избыточности с ответом th. Однако я получаю следующую ошибку:

Ошибка:

The argument type 'List<Chat> (C:\flutter\bin\cache\pkg\sky_engine\lib\core\list.dart)' can't be assigned to the parameter type 'List<Chat> (C:\flutter\bin\cache\pkg\sky_engine\lib\core\list.dart)'.

Действие:

class GetChatRequest {}

class GetChatSuccess {
  final List<Chat> history;

  GetChatSuccess(this.history);
}

class GetChatFailure {
  final String error;

  GetChatFailure(this.error);
}

final Function getLastChatMessages = () {
  return (Store<AppState> store) {
    var chatService = new ChatService(store);

    store.dispatch(new GetChatRequest());
    chatService.getLast50Messages().then((history) {
      store.dispatch(new GetChatSuccess(history));
    });
  };
};

Услуги:

Future<List<Chat>> getLast50Messages() async {
    final response = await webClient.get('xxxx');
    return response['data'].map<Chat>((e) => new Chat.fromJSON(e)).toList();
  }

1 Ответ

0 голосов
/ 07 января 2019

Изменение

store.dispatch(new GetChatSuccess(history));

до

store.dispatch(new GetChatSuccess(List<Chat>.from(history)));

чтобы получить правильно напечатанный список.

history - это List<dynamic>, который содержит только Chat элементов, но список по-прежнему имеет общий тип dynamic. Чтобы создать правильно набранный List<Chat>, создайте новый список с этим типом и заполните его элементами из history.

См. Также https://api.dartlang.org/stable/2.1.0/dart-core/List/List.from.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...