gpt4 book ai didi

list - Flutter(Dart) 无法从不可修改的列表中删除

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

我正在使用 tinder 刷卡。它具有以下属性:

          swipeCompleteCallback:
(CardSwipeOrientation orientation, int index) {

updateStack(index);

},
),

更新堆栈函数:

    class _TinderCardsState extends State<TinderCards>
with TickerProviderStateMixin {
List lstUsers = [];
int lstUsersLength = 0;

@override
void initState() {
super.initState();
setState(() {
lstUsers = users;
lstUsersLength = users.length;
});
}

void updateStack(int index) {
setState(() {

lstUsersLength = lstUsersLength - 1;
lstUsers.removeAt(index);
});
}

所以基本上只是尝试从堆栈中移除顶部的卡片。即使它是有状态的小部件,我也会收到上述错误。为什么会出现此错误?

数据(只是一个带有列表的 dart 文件,没有类或任何东西):

      const List users = [
{
"id": "p1",
"name": "John Doe",
"age": "44",
"imageUrl":
"assets/images/anastasia-vityukova-unsplash-blackandwhiteimage.png",
"profession": "Financial Consultant"
},
....
]

最佳答案

List users = [...] 之前删除 const。

您将用户声明为编译时常量。这就是它不可修改的原因。

在 dart 中,对象通过引用传递。当您编写 lstUsers = users; 时,lstUsers 成为用户的“ View ”,然后也变得不可修改。

另一种避免这种情况的方法是:lstUsers = users.toList()。然后它会为 lstUsers 提供从用户创建的新列表的值。

关于list - Flutter(Dart) 无法从不可修改的列表中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69403241/

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