我需要帮助从DropdownButtonFormField获取两个值。下拉表单项是从Firestore中的文档创建的列表。这是我的下拉菜单:
return DropdownButtonFormField(
isExpanded: true,
decoration: textInputDecoration,
value: _currentUser,
hint: Text(
'Select User',
),
onChanged: (val) {
setState(() => _currentUser = val);
setState(() => UserDropdownList.some = val);
},
items: user.map((user){
return DropdownMenuItem(
value: user.userId,
child: Text(user.name)
);
}).toList(),
);
从下拉菜单中,我获得userId作为值,而在下拉菜单中,名称显示为文本。但是,我想要第二个值,该值可以与userId一起使用所选用户的名称。请帮忙!
答案 0 :(得分:0)
dropdownmenuitem
仅具有value
的一个属性,您可以执行以下操作:
items: user.map((user){
return DropdownMenuItem(
value: ${user.userId}_${user.name},
child: Text(user.name)
);
}).toList(),
这将为您提供带有ID和用户名的值。
答案 1 :(得分:0)
引用 Peter 指出的 split 方法
可以试试这个
items: user.map((user){
return DropdownMenuItem(
value: user["your_data"].toString() + " " + user["another_data"].toString(),
// output = your_data another_data
child: Text(user.name)
);
}).toList(),
分别获取两个值
print(_currentUser.split(" ")[0]); // will print your data
print(_currentUser.split(" ")[1]); // will print another data