gpt4 book ai didi

dart - 如何为每个动态列表小部件赋予不同的值?

转载 作者:IT王子 更新时间:2023-10-29 07:12:14 25 4
gpt4 key购买 nike

我有一个基于后端项目计数的自定义小部件循环,例如:

 _showPerItem(Item items) {
List<Widget> unitItems = <Widget>[];
for (var i = 0; i < items.data.length; i++) {
unitItems.add(
MenuList(
menuName: '${items.data[i].name}',
menuDescription: '${items.data[i].description}',
price: 'Rp. ${items.data[i].price}',
onPressed: () {
widget.showModal(items.data[i]);
},
),
);
}

然后我希望 MenuList 具有可以添加或删除的整数计数,就像食品订购应用程序一样。所以每个项目都有不同的项目计数值。

我试过使用 bloc,但只考虑改变的单个值。也许我可以使用 map ,但我想听听一些建议或更好的方法。谢谢!

最佳答案

为此,您可以在所有对象上使用 dart 的 hasCode 属性。在您的模型中添加一个名为 hashCode 的属性,并从那里返回值的哈希值。您可以使用 Quiver获得如下所示的哈希辅助函数。

int get hashCode => hash2(menuName.hashCode, price.hasCode);

哈希码将是唯一的。如果您愿意,您还可以在其中添加其他附加值,只需使用 hash3、4 等即可。

使用 将 quiver 导入您的模型

import 'package:quiver/core.dart';

更新:根据下面@RandalSchwartz 的评论,我想提一下,在获取哈希码时,您应该使用不太可能相同的属性组合。

hashCode 不保证为每个对象返回唯一值。如果两个对象“相等”,则它们必须具有相同的 hashCode,但反之则不然。

关于dart - 如何为每个动态列表小部件赋予不同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55253917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com