> 我正在做一个应用程序,使用http获取请求从服务器获取数据。
我想通过使用刷新指示器小部件来刷新页面,该小部件的刷新方法每次都会调用我的get请求。
Future<void> fetch() async {
const url = "https:*********.firebaseio.com/nodes.json";
final response = await http.get(url);
final extractedData = json.decode(response.body) as Map<String, dynamic>;
List<Node> value = [];
extractedData.forEach((key, v) {
value.add(
Node(cpu: v['cpu'], memory: v['memory'], isLeader: v['_isleader']));
setState(() {
_nodes = value;
});
});
}
void initState() {
setState(() {
_isLoading = true;
});
fetch().then((_) {
setState(() {
_isLoading = false;
});
});
super.initState();
}
body: RefreshIndicator(
onRefresh: fetch,
child: _isLoading == true
? Center(
child: CircularProgressIndicator(),
)
: Stack(
children: <Widget>[
Padding(
padding: EdgeInsets.all(10),
child: Align(
alignment: Alignment.bottomCenter,
child: Image.network(
"https://rendr.com.au/wp-content/uploads/2018/10/Website-Maintenance-Animation.gif",
),
),
),
你能展示一下完整的代码吗?我认为你需要替换 onRefresh: refresh,
到 onRefresh: fetch(),