在我的flutter项目中使用刷新指示器无法重新加载页面。

问题描述 投票:0回答:1

All these nodes data are updated everytime after fetch method is called> 我正在做一个应用程序,使用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",
                          ),
                        ),
                      ),
flutter dart refresh future page-refresh
1个回答
0
投票

你能展示一下完整的代码吗?我认为你需要替换 onRefresh: refresh,onRefresh: fetch(),

© www.soinside.com 2019 - 2024. All rights reserved.