如何从DropdownButtonFormField获取两个值

时间:2020-03-12 06:18:44

标签: firebase flutter dart dropdown

我需要帮助从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一起使用所选用户的名称。请帮忙!

2 个答案:

答案 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