我有一个FormField小部件,其中的构建器返回了一个DropdownButton和一个验证器,但是当验证失败时,该小部件不会显示我的错误消息。
FormField(
builder: (FormFieldState state) {
return DropdownButtonHideUnderline(
child: DropdownButton(
value: _gender,
isDense: true,
hint: Text(AppLocalizations.of(context).genderSelect),
onChanged: (String newValue) {
print(newValue);
setState(() {
_gender = newValue;
state.didChange(newValue);
});
},
items: _genders(),
)
);
},
initialValue: null,
validator: (value) {
if(value == null){
print('Gender is null');
return AppLocalizations.of(context).genderRequired;
}
},
)
答案 0 :(得分:0)
我找到了一种解决方法/解决方案here
答案 1 :(得分:0)
我使用 builder 方法提供的变量 state 解决了这个问题。 首先,使用 state.hasError 检查是否有错误(如果验证方法返回任何,则更改为真)其次,使用 state.errorText 绘制带有错误值的小部件。 我的构建器方法如下所示:
builder: (FormFieldState<dynamic> state){
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
//here your widget with the value
if ( state.hasError)...[
Container(
child: Text(state.errorText),
),
]
]
);
}