我尝试制作的小部件是一个下拉按钮,我使用 flutter Get 包进行状态管理。
控制器:
fsspec
小部件:
xarray: 0.17.0
zarr: 2.6.1
fsspec: 0.8.4
错误:
// Getter and Setter for Downdown List Item
RxList<DropdownMenuItem<ListItem>> _dropdownMenuItems = [].obs;
set setDropdownValues(value) => _dropdownMenuItems(value);
List<DropdownMenuItem<ListItem>> get getDropdownValues => _dropdownMenuItems
.map((e) => DropdownMenuItem(
value: e.value,
child: Text(e.value.name))).toList();
// Getter and Setter for Items Selected from the dropdown
Rx<ListItem> _selectedItem = ListItem().obs;
set setSelectedItem(value) => _selectedItem(value);
get getSelectedItem => _selectedItem.value;
// OnInit
@override
void onInit() {
super.onInit();
setDropdownValues = buildDropDownMenuItems(); // Sets dropdown list
setSelectedItem = getDropdownValues[0].value; // Sets selected item as the first entry to the list
}
// Sample to populate the Dropdown List
List<DropdownMenuItem<ListItem>> buildDropDownMenuItems() {
List<ListItem> _dropdownItems = [
ListItem(value: 1, name: "Recent"),
ListItem(value: 2, name: "Oldest"),
];
List<DropdownMenuItem<ListItem>> items = [];
for (ListItem listItem in _dropdownItems) {
items.add(
DropdownMenuItem(
child: Text(listItem.name),
value: listItem,
),
);
}
return items;
}
我是否为 RxList 分配了错误的类型?我是否错误地将其映射到列表?
非常感谢任何帮助。
答案 0 :(得分:0)
我已经解决了这个问题。
我唯一需要做的就是将 obs 列表转换为它所指的类型。
所以,以前是
RxList<DropdownMenuItem<ListItem>> _dropdownMenuItems = [].obs;
我已将其更新为
RxList<DropdownMenuItem<ListItem>> _dropdownMenuItems = <DropdownMenuItem<ListItem>>[].obs;