Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
652 views
in Technique[技术] by (71.8m points)

socket.io - Flutter: control the state of main widget

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!


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...