I'am a beginner at Flutter, there is a thing that i cannot understand and i don't find an explanation anywhere.
I am trying to create an app using google maps with roads drawn on the map, so i use the variable _poly with contains the points to draw the road:
void change_road() {
some code...
socket.on('my event', (data) async {
_poly = await new_road();
}
}
@override
Widget build(BuildContext context) {
.
.
.
GoogleMap(
mapType: MapType.normal, //hybrid
initialCameraPosition: initialLocation,
zoomControlsEnabled: false,
markers: Set.of((myMarker != null) ? [myMarker] : []),
circles: Set.of((circle != null) ? [circle] : []),
onMapCreated: (GoogleMapController controller) {
_controller = controller;
},
polylines: _poly,
),
.
.
.
so basically i am changing the value of _poly in a socketIO event in an other function.
The problem is why the map does not change when I change the value?
And in general why does changing the value of variables outside the build function does not have an impact on these variables inside the build.
PS: The function change_road() has been called else where and the socket is listening on the event...
Please help me and thank you!
question from:
https://stackoverflow.com/questions/65516953/flutter-control-the-state-of-main-widget 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…