【发布时间】:2020-10-27 08:48:06
【问题描述】:
嗨,我是 Flutter 的新手。
如果 textformfield 为空,我使用 TextFormField 小部件来验证输入,并用 GlobalKey Form 小部件包装它。
我能问一下它是否可能只检查至少一个字段不为空然后它是有效的。
TextField A = 空 & TextField B = 非空 :: 有效
TextField A = 非空 & TextField B = 空 :: 有效
TextField A = 空 & TextField B = 空 :: 无效
在这种情况下,有两个 textformfield A 和 textformfield B 至少一个不能为空,所以它可以是 A 或 B。但如果两者都是空的,那么用户必须填写一个 textfield。我的目标是我的所有 textformfield 都有一个验证,但如果至少一个已填充或不为空,则可以。
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
Form(
key: _formKey,
child: Column(children: [
TextFormField(validator: (value) {
if (value.isEmpty) {
return "Please Fill";
}
}),
TextFormField(validator: (value) {
if (value.isEmpty) {
return "Please Fill";
}
}),
RaisedButton(
child: Text("Submit"),
onPressed: () async {
if (_formKey.currentState.validate()) {
return;
}
_formKey.currentState.save();
//Some Codes
},
)
]),
),
我打算将其更改为 TextField 小部件并使用 setState({}) 检查是否至少 1 已填充但我不想使用 setState。有没有办法解决我的问题?谢谢
【问题讨论】:
标签: flutter dart flutter-layout