Как получить потоковые события MapController() flutter_map? Трепетать

#flutter #fluttermap

Вопрос:

Я пытаюсь слушать MapEvents от MapController() , как предложено здесь https://github.com/fleaflet/flutter_map/issues/877#issuecomment-825545206 как

 @override
  void initState() {
    super.initState();

    _mapController.mapEventStream.where((event) => event is MapEventMoveEnd).listen((event) {
      // TODO: You code
    });
  }
 

проблема в том, что у меня нет mapEventStream доступной опции _mapController .
Это просто проблема с версией пакета или что я делаю не так??
Я все еще использую flutter_map: ^0.10.1, так как мне придется обновить многие другие пакеты..

Ответ №1:

Да, ваша версия пакета слишком стара, чтобы использовать эту функцию. Для использования вам нужно как минимум 0.11.0 mapEventStream , хотя, возможно, вам сойдет с рук 0.10.1 1 в зависимости от вашего варианта использования.

Просматривая историю фиксаций для lib/src/map/map.dart (файл с кодом MapController), представляют интерес две фиксации:

  • 9 июля 2020 года: в строке 62 MapPosition position был добавлен поток под названием.
  • 29 января 2021 года: также в строке 62 position изменено mapEventStream значение, а тип потока изменен на излучающие MapEvent объекты.

Теперь, глядя на историю версий flutter_map, самая ранняя версия, включающая первую упомянутую выше фиксацию, составляет 0.10.1 1, а для получения последней формы вам нужно 0.11.0.

Я проверил существование обоих геттеров в их соответствующих версиях в моем редакторе.

Комментарии:

1. добро пожаловать в это замечательное сообщество разработчиков. Спасибо, я знал, что проблема будет в более старой версии, которую я сейчас использую. Я думаю, пришло время обновить все зависимости.. настоящая заноза в заднице, но эй.. Еще раз большое спасибо, что потратили время на то, чтобы просмотреть коммиты и найти минимальную версию, которую я должен использовать, очень ценю это. Ваше здоровье.