DropdownButtonFormField nosuchmethoderror:在空值上调用吸气剂值

问题描述 投票:0回答:1

以下代码中出现错误。当我在valueonChanged参数上设置null时,它显示下拉菜单,但下拉菜单不起作用。

_genderField() {
    return DropdownButtonFormField<String>(
      hint:Text('Gender'),
      items: ['Male', 'Female'].map((String gender) {
        DropdownMenuItem<String>(
          child: Text(gender),
          value: gender,
        );
      }).toList(),
      value: 'Male',
      onChanged: (newValue) {
        print(newValue);
      },
    );
  }
flutter flutter-layout flutter-form-builder
1个回答
0
投票

如果onChanged回调为空,或者items的列表为空,则Dropdown按钮将被禁用,即其箭头将显示为灰色,并且将不响应输入。” >

但是,如果您打算首先显示空白项目,则可以在项目中添加空字符串。您可以添加验证器以限制用户至少选择非空值。

_genderField() {
return DropdownButtonFormField<String>(
  hint:Text('Gender'),
  items: ["",'Male', 'Female'].map((String gender) {
    DropdownMenuItem<String>(
      child: Text(gender ?? ""),
      value: gender,
    );
  }).toList(),
  value: selectedValue,
  validator: (value) => (value.length > 0) ? null : "This field is required",
  onChanged: (newValue) {
    setState((){
      selectedValue = newValue;
    });
    print(newValue);
   },
 );
}
© www.soinside.com 2019 - 2024. All rights reserved.