Flutter:如何在FutureBuilder中计算项目列表的总价

ttcibm8c  于 2022-11-17  发布在  Flutter
关注(0)|答案(2)|浏览(124)

如何计算FutureBuilder中的项目列表的总价?我试试这个

FutureBuilder<ProModel>(
  future: futurePro,
  builder: (context, snapshot){
  if(snapshot.hasData){
    snapshot.data.pro.forEach((element) {
    subTotal = subTotal + int.parse(element.amount);
    });
  }
}

subTotal在连续递增(到无穷大)时i加上Text('$subTotal') snapshot.data.pro是从json列表

{
"pro":[
  {"id":"1", "amount":"1784",}
  {"id":"2", "amount":"1643",}
 ]
}
fcg9iug3

fcg9iug31#

看起来您将subTotal存储在周围小部件的某个位置。
与任何构建方法一样,构建器回调可以被多次调用,并且每次调用时都会添加到存储值中。

snapshot.data.pro.forEach((element) {
  subTotal = subTotal + int.parse(element.amount);
});

可以尝试将该值存储在一个局部变量中,如下所示:

var subTotal = 0;
for (var p in snapshot.data.pro) {
  subTotal += int.parse(p.amount);
}
dsekswqp

dsekswqp2#

在您情况下,为以下行:

subTotal = subTotal + int.parse(element.amount);

在这个element.amount中,你试图得到一个不存在的amount属性,这个属性不存在于你的list的元素中,你得到的是一个List<Map>,而Mapamount键只能像这样调用。
因此,在您情况下,请替换为以下内容:

if(snapshot.hasData){
snapshot.data.pro.forEach((element) {
subTotal = subTotal + int.parse(element["amount"]);
});
 }

相关问题