who*_*dar 5 crud list dart flutter
我正在使用 Tinder 刷卡。它具有以下属性:
swipeCompleteCallback:
(CardSwipeOrientation orientation, int index) {
updateStack(index);
},
),
Run Code Online (Sandbox Code Playgroud)
更新堆栈函数:
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);
});
}
Run Code Online (Sandbox Code Playgroud)
所以基本上只是试图从堆栈中移除顶部的卡片。即使它是有状态小部件,我也会收到上述错误。为什么我会收到此错误?
数据(只是一个带有列表的 dart 文件,没有类或任何东西):
const List users = [
{
"id": "p1",
"name": "John Doe",
"age": "44",
"imageUrl":
"assets/images/anastasia-vityukova-unsplash-blackandwhiteimage.png",
"profession": "Financial Consultant"
},
....
]
Run Code Online (Sandbox Code Playgroud)
Tan*_*guy 10
删除之前的 const List users = [...]。
您将用户声明为编译时常量。这就是它不可修改的原因。
在 dart 中,对象是通过引用传递的。当您编写lstUsers = users;lstUsers 时,它会成为用户的“视图”,然后也变得不可修改。
另一种避免这种情况的方法是:
lstUsers = users.toList()。然后,它为 lstUsers 提供从用户创建的新列表的值。