#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. добро пожаловать в это замечательное сообщество разработчиков. Спасибо, я знал, что проблема будет в более старой версии, которую я сейчас использую. Я думаю, пришло время обновить все зависимости.. настоящая заноза в заднице, но эй.. Еще раз большое спасибо, что потратили время на то, чтобы просмотреть коммиты и найти минимальную версию, которую я должен использовать, очень ценю это. Ваше здоровье.