gpt4 book ai didi

flutter - 如何使用提供程序从 Flutter 列表中删除项目?

转载 作者:行者123 更新时间:2023-12-02 01:40:11 24 4
gpt4 key购买 nike

我有一个列表,我正在尝试从中删除特定项目。

我第一次尝试:

Provider.of<WeekList>(context, listen: false).listOfWeeks.remove(widget.index);

这不起作用。

经过思考,我意识到提供程序正在检索列表,但实际上并未更新提供程序。

因此,我决定使用提供程序来保存检索列表并将其保存到新列表:

List<Week> myList =Provider.of<WeekList>(context, listen: false).listOfWeeks;

然后我尝试删除当前位置的项目:

myList.remove(widget.index);

我预计 myList 在最后一行代码之后会缩短 1。但我在它之前和之后都打印了,他们仍然说长度是 6...

不知道为什么它不从 myList 中删除任何内容。如果它有效,它应该将其缩短一,然后我计划尝试更新提供程序......但也许我没有正确地解决这个问题。

最佳答案

在你的最后一种方法中,你正在更改列表的“副本”,为了实现你的目标,你需要做的是在你的状态中创建函数来更新你的列表并通知听众,将此函数放入您的 ChangeNotifier 类中:

void updateList(int index)
{
listOfWeeks.removeAt(widget.index);
notifyListeners();
}

你可以这样调用它:

Provider.of<WeekList>(context, listen: false).updateList(index);

关于flutter - 如何使用提供程序从 Flutter 列表中删除项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71722234/

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