![](/img/trans.png)
[英]A dismissed Dismissible widget is still part of the tree. In flutter
[英]A dismissed Dismissible widget is still part of the tree. Getting this error repeatedly after removing item from list
我已將 UniquiId 設置為 Dismissible Widget 的鍵。 之后添加一些項目,我有些解雇了一個項目。 當我轉到下一頁時,我收到一個錯誤(已關閉的 Dismissible 小部件仍然是樹的一部分。)即使在已關閉的回調中使用 Provider 從列表中刪除項目后也是如此。
@override
Widget build(BuildContext context) {
return Dismissible(
key: UniqueKey(),
direction: DismissDirection.endToStart,
confirmDismiss: (direction) {
return showDialog(
context: context,
builder: (context) => AlertDialog(
title: Text('Are you sure?'),
content: Text(
'Dou you want to remove the item from the cart?',
),
actions: [
FlatButton(
onPressed: () {
Navigator.of(context).pop(false);
},
child: Text('No'),
),
FlatButton(
onPressed: () {
Navigator.of(context).pop(true);
},
child: Text('Yes'),
),
],
),
);
},
onDismissed: (direction) {
Provider.of<Cart>(context, listen: false)
.removeItem(productId);
},
background: Container(
color: Theme.of(context).errorColor,
child: Icon(
Icons.delete,
color: Colors.white,
size: 40,
),
alignment: Alignment.centerRight,
padding: EdgeInsets.only(right: 20),
margin: EdgeInsets.symmetric(
horizontal: 15,
vertical: 4,
),
),
child: Container(
child: Padding(
padding: EdgeInsets.all(8),
child: ListTile(
leading: CircleAvatar(
child: Padding(
padding: EdgeInsets.all(5),
child: FittedBox(
child: Text('\₹${(price * quantity)}'),
),
),
),
title: Text(title),
subtitle: Text(laundryName.toUpperCase()),
trailing: Text('$quantity x'),
),
),
),
);
}
}
請幫助我在這個嘗試了很多仍然得到同樣的錯誤。 提前致謝。
確保項目已從根列表中刪除。 如果您正在使用提供程序,則通過將 listView.builder 小部件保留在 Consumer 下來獲取更新的數據。 這樣當您關閉一個項目時,它將被更新。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.