Не удалось перезагрузить страницу с помощью индикатора Refre sh в моем проекте флаттера - PullRequest
0 голосов
/ 17 апреля 2020

All these nodes data are updated everytime after fetch method is called> я делаю приложение, которое использует запрос http для получения данных с сервера

Я хочу иметь возможность обновить страницу sh, используя refre sh индикатор-виджет, метод refre sh которого каждый раз вызывает мой запрос 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",
                          ),
                        ),
                      ),

1 Ответ

0 голосов
/ 17 апреля 2020

Можете ли вы показать полный код? Я думаю, вам нужно заменить onRefresh: refresh, на onRefresh: fetch(),

...