Flutter TextFormField的颤振检查验证

Flutter TextFormField的颤振检查验证,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,嗨,我是新来的 如果TextFormField为空,我将使用TextFormField小部件验证输入,并使用GlobalKey表单小部件包装它 我可以问一下,是否可以只检查至少一个字段不为空,然后检查它是否有效 TextField A=空&TextField B=非空::有效 TextField A=不为空&TextField B=为空::有效 TextField A=empty&TextField B=empty::无效 在这种情况下,有两个textformfield A和textformfi

嗨,我是新来的

如果TextFormField为空,我将使用TextFormField小部件验证输入,并使用GlobalKey表单小部件包装它

我可以问一下,是否可以只检查至少一个字段不为空,然后检查它是否有效

TextField A=空&TextField B=非空::有效 TextField A=不为空&TextField B=为空::有效 TextField A=empty&TextField B=empty::无效

在这种情况下,有两个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
                      },
                  )
                ]),
              ),
final GlobalKey _formKey=GlobalKey();
形式(
键:_formKey,
子项:列(子项:[
TextFormField(验证器:(值){
if(value.isEmpty){
返回“请填写”;
}
}),
TextFormField(验证器:(值){
if(value.isEmpty){
返回“请填写”;
}
}),
升起的按钮(
儿童:文本(“提交”),
onPressed:()异步{
if(_formKey.currentState.validate()){
返回;
}
_formKey.currentState.save();
//一些代码
},
)
]),
),
我计划将其更改为TextField小部件,并使用setState({})检查是否至少有1个已填充,但我不想使用setState。有办法解决我的问题吗?。谢谢

试试这个:

final GlobalKey<FormState> _formKey = GlobalKey<FormState>();

                Form(
                key: _formKey,
                child: Column(children: [
                  TextFormField(validator: (value) {
                    if (value.isEmpty) {
                      return "Please Fill";
                    }
                    return null;
                  }),
                  TextFormField(validator: (value) {
                    if (value.isEmpty) {
                      return "Please Fill";
                    }
                    return null;
                  }),
                  RaisedButton(
                    child: Text("Submit"),
                    onPressed: () async {
                        if (_formKey.currentState.validate()) {
                          // If the form is valid, display a Snackbar.
                            Scaffold.of(context).showSnackBar(SnackBar(content: Text('Processing Data')));
                        }
                        _formKey.currentState.save();
                        //Some Codes
                      },
                  )
                ]),
              ),
final GlobalKey _formKey=GlobalKey();
形式(
键:_formKey,
子项:列(子项:[
TextFormField(验证器:(值){
if(value.isEmpty){
返回“请填写”;
}
返回null;
}),
TextFormField(验证器:(值){
if(value.isEmpty){
返回“请填写”;
}
返回null;
}),
升起的按钮(
儿童:文本(“提交”),
onPressed:()异步{
if(_formKey.currentState.validate()){
//如果表单有效,则显示一个快捷键。
showSnackBar(SnackBar(内容:Text('Processing Data'));
}
_formKey.currentState.save();
//一些代码
},
)
]),
),