【发布时间】:2021-11-22 22:42:17
【问题描述】:
我正在使用 tinder 刷卡。它具有以下属性:
swipeCompleteCallback:
(CardSwipeOrientation orientation, int index) {
updateStack(index);
},
),
updateStack 函数:
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"
},
....
]
【问题讨论】:
-
你能告诉我们你到底遇到了什么错误吗?
-
可能与问题无关,但:
lstUsers.remove(index)' will try to remove the item ìndex来自列表。你应该使用lstUsers.removeAt(index)。lstUsers.removeWhere((item) => index == index);也将删除您列表中的所有项目,因为(index == index)将始终为真。也许你得到了这部分未注释的错误? -
用户列表的定义是什么?您将 lstUsers 分配给用户 lstUsers = users; users 是可修改的列表吗?