在Flutter中更新其他有状态小部件时重建有状态小部件

时间:2019-11-22 00:38:12

标签: asynchronous flutter widget

我有两个有状态的小部件。 我将其称为父级,因为它会生成一个列表(包含地图标记),该列表将传递给第二个小部件(子代,一个地图,位于另一个dart文件中)。 我有一个默认的标记列表,该列表在父窗口小部件的异步函数中更新。 尽管使用setState()来更新列表,但是子窗口小部件(地图)不受此更新的影响。 在将数据传递到build方法中的小部件之前,我有什么办法可以等待?


class ParentWidget extends StatefulWidget{
        .............
}

class _ParentWidgetState extends State<ParentWidget> {

List markers = [LatLng(0,0)];

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

updateMarkers () async {
  updatedMarkers = await getUpdatedMarkers()
  setState((){
    markers = updatedMarkers
  });
  # # print(updatedMarkers)
  # # ^^ prints the correct data that I want to pass in MyMap
}

@override
  Widget build(BuildContext context) {
  return Scaffold(
  ............
  body: MyMap(markers: markers);
 # # The original markers ([LatLng(0,0)]) is the only data getting passed to MyMap
 # # How can I get the updatedMarkers passed to the MyMap widget???????
}

1 个答案:

答案 0 :(得分:0)

我认为这部影片可能是您的答案:https://www.youtube.com/watch?v=d_m5csmrf7I

他有两个StatefulWidgets(滑块和图表)。通过使用提供者,他可以在滑块移动时更改图表数据。