如何从 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