[英]How to convert List<dynamic> to List<Object> in Flutter
我制作了兩個列表 List <Animal> _animals 和 List <Animal> _selectedanimals
static List<Animal> _animals = [
Animal( name: "Tiger"),
Animal(name: "Lion"),
Animal( name: "Panda"),
Animal( name: "Anaconda"),];
List<Animal> _selectedAnimals2 = [];
然后我制作了一個多選表,用戶可以在其中 select 他最喜歡的動物,並在用戶確認/或選擇時將所選值存儲在名為 values 的動態列表中,從 List<dynamic> values 將其存儲到另一個列表 List< Animal> _selectedAnimals2 但我收到一個錯誤,如下所述:
'List<dynamic>' 類型不是 'List<Animal>' 類型的子類型
MultiSelectBottomSheetField(
initialChildSize: 0.4,
listType: MultiSelectListType.CHIP,
searchable: true,
buttonText: Text("Favorite Animals",style: GoogleFonts.montserrat(color: Colors.white),),
title: Text("Animals"),
items: _items,
onConfirm: (values) {
_selectedAnimals2=values;
final List<String> choose=_selectedAnimals2.map((Animal animal) => animal.name).toList();
saveUserInfoToFireStore(choose);
},
如果您的 _items 是字符串列表,您可以試試這個
_selectedAnimals2 = values.map((val) => Animal( name: val)).toList()
如果我們想將列表動態轉換為它的類型,我們可以使用方法cast()
List sample = ["test1", "test2"]; /// dynamic list
List<String> stringList = []; /// string list
/// for casting
stringList = sample.cast<String>();
同樣我們可以轉換出列表
List<CustomModel> list = dynamicList.cast<CustomModel>();
List<CustomModel> toResponseList(List<dynamic> data) {
List<CustomModel> value = <CustomModel>[];
data.forEach((element) {
value.add(NasaResponseModel.fromJson(element));
});
return value ?? List<CustomModel>.empty();
}
為我工作:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.