【问题标题】:Issue With Adding and Deleting Function in Flutter在 Flutter 中添加和删除函数的问题
【发布时间】:2021-01-06 06:55:38
【问题描述】:

我有这两个函数应该添加和删除列表中的项目。加法还应该计算所有项目的总和,但它并不能完全按照它应该的方式工作。这是添加功能:

  Future getTotal(item) async {
    int counter = 0;

    counter += int.parse(item);
    totalPrice.add(counter);

    _totalPrice.forEach((element) => counter += element);
    print(totalPrice);
    
    print(counter);
    return totalPrice;
  }

它首先声明计数器(基本上是总和),然后它应该 onTap 计算所有项目的总和,但我遇到了这个问题,它正确添加了项目,但计数器在第一次点击时添加了一个额外的项目,就像计数器在开始时添加了两次一样,我怀疑这段代码是问题所在:

counter += int.parse(item);
totalPrice.add(counter);

这是图片中的问题:

现在是删除功能

我有这个简单的删除功能,但它似乎没有删除任何项目 onTap:

 deleteSumItem(item) {
    _totalPrice.remove(item);
    notifyListeners();
    print(totalPrice);
  }

它应该与 getTotal(item) 函数一起使用,从中删除特定项目,但正如我所提到的,它似乎没有做任何事情,并且每次点击都会返回完整列表。

我希望我很清楚,我似乎从来没有弄清楚简单的问题。谢谢!

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    您在此处添加了两次元素:_totalPrice.forEach((element) => counter += element);

    关于删除,您在添加时(主要)使用totalPrice,但在删除时使用_totalPrice。看出区别了吗?

    【讨论】:

    • 是的,这可能是个问题,但您将如何解决呢?我试过_totalPrice.forEach((element) => counter + element);,但似乎效果不佳。至于删除功能,我明白了,我用了_totalPrice,我的不好。
    • 坦率地说,你的整个代码看起来有点奇怪。 counter 是一个价格,我猜等等。对于你的问题,我猜你想要cart.add(counter)cart.forEach((e) totalPrice += e) 之类的东西。
    • 是的,这不是最好的解决方案,但我有这个不灵活的旧代码库,所以它必须是这样的。
    猜你喜欢
    • 2021-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多