我仔细阅读了Flutter教程;从互联网上获取数据:https://flutter.io/cookbook/networking/fetch-data/
我担心的是我想更新布局中的多个文本 .
该实现仅显示更新一个方法:
FutureBuilder<Post>(
future: fetchPost(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return Text(snapshot.data.title);
} else if (snapshot.hasError) {
return Text("${snapshot.error}");
}
// By default, show a loading spinner
return CircularProgressIndicator();
},
);
这工作正常,一次显示一个视图 .
在Android Studio / Java中,我会做类似的事情:
myTextView1.setText(snapshot.data.data1)
myTextView2.setText(snapshot.data.data2)
myTextView3.setText(snapshot.data.data3)
.....
myTextView10.setText(snapshot.data.data3)
但在Flutter,我目前仅限于一个“Widget” .
当然,我可以在返回参数中提供我的整个布局,但那会很疯狂!
有什么想法/建议吗?
2 回答
另一种策略是在状态类中使用局部变量,并在未来到达时更新它 . 因此,您可以在任何需要的地方引用该变量 .
这是一个例子:
您可以将您的请求转换为
Stream
在此示例中,
RandomContainer
在每个setState
上更改其颜色,并且它作为指示符,而变化仅在_MyTextWidget
中