Flutter StatefulWidget重建无限次



问题是整个小部件正在无限次地自我重建。

我曾尝试将其转换为StatelessWidget,但没有任何变化。

但是,当我将相同的代码复制到另一个类时,它可以正常工作。

这是我的密码。

class _SignalpageState extends State<Signalpage> {
Future getData2() async {
var signaldata = {"chanelid": '1'};
var url = 'http:....';
var response = await http.post(url, body: signaldata);
var responsebody = jsonDecode(response.body);
data = responsebody;
print(data);
return data;
}

Future getData1() async {
var url = "http:......php";
var response = await http.get(url);
var responsebody = jsonDecode(response.body);
datarates = responsebody;
return datarates;
}
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(" Signals"),
),
body: SafeArea(
top: true,
maintainBottomViewPadding: true,
bottom: true,
child: RefreshIndicator(
onRefresh: OLs,
child: FutureBuilder(
initialData: [getData1(), getData2()],
future: Future.wait([getData2(), getData1()]),
builder: (context, snapshot) {

您不必每次实例化FutureBuilder时都重新实例化Future,但必须将其保存在State类的字段中。否则,当未来完成并重建FutureBuilder时,FutureBuilders将收到一个尚未完成的新未来作为自变量,以此类推。

如需更详细的解释,请参阅文章https://flutterigniter.com/future-async-called-multiple-times/

最新更新