別クラスからFutureBuilderをリロードしたい

前提

WEB APIから取ってきたJSONをベースにリストビューを生成するアプリを作成しています。

リストビュー内に全部ごっちゃ混ぜにすると見辛くて仕方ないので
部品別に別クラス/メソッドで小分けしてメインクラスから分割しています。

return Scaffold( body: RefreshIndicator( onRefresh: () { setState(() { myData = fetchData(context, url); }); return myData; }, child: FutureBuilder<GetData>( future: fetchData1(context, url), builder: (context, snapshot) { if (snapshot.hasData) { var data = snapshot.data!.items; return (data.length == 0) ? Center( child: Column(mainAxisAlignment: MainAxisAlignment.center, children: [ Icon(Icons.account_circle_rounded, color: gold, size: MediaQuery.of(context).size.width * 0.3), TextButton( onPressed: () { setState(() { myData = fetchData(context, url); }); }, child: Text("再読み込み")), ]), ) : ListView.builder( padding: EdgeInsets.zero, itemCount: data.length, itemBuilder: (ctx, index) => CardView(context, data, index), ); } if (snapshot.hasError) return errUI(context); return Center(child: const CircularProgressIndicator()); }, ), ), );

実現したいこと

リフレッシュインジケーターを使ったり、別画面に遷移してのリロードではなく、
別クラスにしたウィジェット操作(ボタン押下など)でもリロードさせたいです。

ネット検索ではコレといったものが見つからなかったので、何かヒントや
該当しそうなWEBサイトがあれば教えていただけないでしょうか?

コメントを投稿

0 コメント