Что я передаю объекту Flutter Completer? - PullRequest
0 голосов
/ 28 февраля 2019

В предыдущем вопросе о переполнении стека обсуждалось получение размера изображения, на которое кто-то отправил ответ

    Future<ui.Image> _getImage() {
        Completer<ui.Image> completer = new Completer<ui.Image>();
        new NetworkImage('https://i.stack.imgur.com/lkd0a.png')
          .resolve(new ImageConfiguration())
          .addListener((ImageInfo info, bool _) => completer.complete(info.image));
        return completer.future;
  }

К сожалению, приведенный выше код не скомпилируется из-за ошибки complete.complete(info.image) в Android Studio, которая говорит:

тип аргумента 'image' не может быть назначен типу параметра 'FutureOr'

Может кто-нибудь подсказать, как исправить код, чтобы объект Completerработать правильно?

Я бы попросил у автора плаката принятый ответ, но у меня пока недостаточно репутации, чтобы комментировать.Поэтому я задаю вопрос здесь.

Ссылка на оригинальный пост здесь:

Как определить ширину и высоту изображения в Flutter?

1 Ответ

0 голосов
/ 28 февраля 2019

Это означает, что типы не совпадают.

Глядя на ваш код, он должен работать, поскольку ImageInfo.image должен возвращать ui.Image.

Прежде всего, вы можете опустить тип в конструкторе, например:

Completer<Image> completer = Completer();

Если у вас все еще есть проблемы, было бы полезно увидеть больше трассировки стека.

...