[英]how can i call data from a model class which in list model flutter
[英]How can access Flutter specific list item from model class?
我有一個名為Place的 model class 並有一個基於 model ZA2F2ED4F8EBC2CBB4C21A29D 的地方列表我使用Navigator.push並從那里傳遞 int 數據。 現在,我如何訪問 id 與給定 id 號相同的特定地點列表?
這是我的 model class 和列表:
class Place {
int id;
String cardImage;
String placeName;
String location;
String country;
String details;
Place({
required this.id,
required this.cardImage,
required this.placeName,
required this.location,
required this.country,
required this.details,
});
}
final List<Place> place = [
Place(
id: 1,
cardImage:
"https://image1_url.jpg",
placeName: "Essence Of Japan",
location: "Tokyo",
country: "Japan",
details: "long text"),
Place(
id: 2,
cardImage:
"https://image2_url.jpg",
placeName: "Essence Of Japan",
location: "Tokyo",
country: "Japan",
details: "long text"),
];
這是我的導航器,其中 pass id 為 1:
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => DetailsPage(1),
),
);
現在我想訪問下面的項目,其中 id:1
Place(
id: 1,
cardImage:
"https://image1_url.jpg",
placeName: "Essence Of Japan",
location: "Tokyo",
country: "Japan",
details: "long text"
),
假設places
列表在您導航的屏幕中,並且id
是您傳遞給屏幕的 id,您可以通過以下方式獲取具有該 id 的地點:
try {
var foundPlace = places.firstWhere((p) => p.id == widget.id);
} catch (e) {
print('place not found');
}
需要在 try-catch 中,因為如果找不到該位置,則會引發StateError
。 或者,您可以添加一個orElse
,它將返回一個帶有null
值的Place
,這需要更改Place
class 並從參數中刪除required
的值。 在這種情況下,您不需要 try-catch:
var foundPlace = place.firstWhere((p) => p.id == widget.id, orElse:()=>Place());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.