child: MultiSelectDialogField(
initialValue: [
//
controller.selectedEquipmentCategoryList
],
decoration: BoxDecoration(border: Border()),
buttonIcon: Icon(Icons.arrow_drop_down),
items: controller.equipmentCategoryList
.map(
(equipmentCategory) => MultiSelectItem(
equipmentCategory?.id,
equipmentCategory?.name ?? '',
),
)
.toList(),
onConfirm: (selectedOptionsList) => {
controller.equipmentCategoriesSelected(
selectedOptionsList)
},
chipDisplay: MultiSelectChipDisplay(),
),
我想在多选中预先填充某些值,但小部件无法做到。列表的数据(初始值)来自API,然后UI会更新(使用Getx)。
3条答案
按热度按时间inn6fuwd1#
可以使用required选项上的“selected”属性设置select元素的默认值。这是一个布尔属性。默认情况下,下拉列表中将显示具有“selected”属性的选项
zmeyuzjn2#
在Flutter中使用MultiSelectDialogField时,可以设置对话框打开时预先选择的初始值。要设置此初始值,需要提供希望最初选择的项目列表。
在给定代码中,MultiSelectDialogField的initialValue参数设置为[controller.selectedEquipmentCategoryList]。这意味着存储在controller.selectedEquipmentCategoryList变量中的所选设备类别列表将用作下拉列表的初始值。
因此,当用户打开下拉列表时,controller.selectedEquipmentCategoryList中的项目将已经被选中,并且用户可以根据需要添加或删除其他项目。
dvtswwa33#
"你会从这个想法中得到灵感"
其思想是用所选项的列表初始化视图(如果在API中有它们),然后将它们与常规列表进行比较,当第一个列表中的项与第二个列表中的项相等时,用将要传递给
initialValue
的那些项的索引填充列表