當我進入我的 ListView 視圖時,我得到一個紅色的錯誤螢屏。看起來問題來自“onDismissed”屬性。
下面是我的 ListView 代碼,我還將包括在 onDismissed 期間呼叫的“deleteRival”方法
ListView(
shrinkWrap: true,
children: snapshot.data!.map((rival){
return Center(
child: Card(
child: Material(
elevation: 10.0,
child: Dismissible(
direction: DismissDirection.endToStart,
key: ObjectKey(rival),
onDismissed: deleteRival(rival.idRival), // <------- THE PROBLEM IS HERE
background: buildSwipeActionRight(),
child: ListTile(
tileColor: Colors.lightBlue,
title: Text(
rival.nameRival,
textAlign: TextAlign.center,
style: const TextStyle(color: Colors.white),
),
),
),
),
),
);
}).toList(),
);
這是我的“deleteRival”方法:
deleteRival(rivalId) async{
final statAccess = DatabaseModel();
await statAccess.deleteRival(rivalId).then((value){
if (value == 1){
alertDialog("Suppression réussie", true);
}else{
alertDialog("Suppresion échouée", false);
}
});
}
uj5u.com熱心網友回復:
方法的型別deleteRival
isFuture<dynamic> Function(dynamic)
和預期的方法型別onDismissed
is void Function(DismissDirection)?
,這就是你得到這個錯誤的原因。
只需替換onDismissed: deleteRival(rival.idRival),
為 onDismissed: (_) => deleteRival(rival.idRival),
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/506388.html