如何从 DropdownButtonFormField 获取两个值
How to get two values from a DropdownButtonFormField
我需要帮助从 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 一起使用。请帮忙!
dropdownmenuitem
只有一个属性对应value
,您可以进行以下操作:
items: user.map((user){
return DropdownMenuItem(
value: ${user.userId}_${user.name},
child: Text(user.name)
);
}).toList(),
这将为您提供包含用户 ID 和名称的值。
参考 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
我需要帮助从 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 一起使用。请帮忙!
dropdownmenuitem
只有一个属性对应value
,您可以进行以下操作:
items: user.map((user){
return DropdownMenuItem(
value: ${user.userId}_${user.name},
child: Text(user.name)
);
}).toList(),
这将为您提供包含用户 ID 和名称的值。
参考 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