Я управляю состоянием своего флаттера с помощью пакета scoped-model.Основная проблема заключается в том, что я пытаюсь отобразить ModalBottomSheet из функции внутри scoped-модели.
До сих пор я пытался создать функцию внутри файла scoped-model и в виджете, который слушает этот файл.но ни один из них не привел.
Моя модель с областью видимости выглядит следующим образом:
class ConnectedReportsModel extends Model {
List<Report> _reports = [];
List<Marker> _markers = [];
//String _selProductId;
User _authenticatedUser;
bool _isLoading = false;
void addReport(String desc, double lat, double lng) {
Report report = Report(
description: desc,
latitude: lat,
longitude: lng,
userId: _authenticatedUser.id,
userEmail: _authenticatedUser.email,
);
_reports.add(report);
notifyListeners();
}
}
class ReportsModel extends ConnectedReportsModel {
Position userPosition;
List<Report> get reports {
return List.from(_reports);
}
List<Marker> get markers {
return List.from(_markers);
}
/*
void addMarker(Marker marker) {
_markers.add(marker);
notifyListeners();
}*/
void addMarker(String desc, double lat, double lng, Function showMarkerInfo) async {
Marker marker = new Marker(
markerId: MarkerId(desc),
position: LatLng(lat, lng),
icon: await BitmapDescriptor.fromAssetImage(
ImageConfiguration(), 'assets/images/pet-lost.png'),
infoWindow: InfoWindow(title: 'Mascota Perdida', snippet: desc),
consumeTapEvents: true,
onTap: () => showMarkerInfo(),
);
_markers.add(marker);
notifyListeners();
}
void setLocation(Position currentPosition) {
userPosition = currentPosition;
}
}
Оттуда я хочу иметь возможность выполнять функцию onTap при касании маркера и отображать модальноена странице, которая добавляет маркер или новую страницу.