Flutter-检查TextFormField的验证

时间:2020-07-07 06:40:12

标签: flutter flutter-layout

你好,我是扑扑的。

如果textformfield为空,则使用TextFormField小部件来验证输入,然后使用GlobalKey Form小部件将其包装。

我可以问一下是否仅检查至少一个 一个字段不为空 ,然后就可以了。

在这种情况下,有两个textformfield A和textformfield B,至少一个不能为空,因此可以为A或B。但是,如果两个都为空,则用户必须填写一个文本字段。我的目标是我所有的textformfield都经过验证,但是至少填满或不为空都可以。

 upstream timed out (110: Connection timed out) while connecting to upstream, client:myip server: site.com, request: "GET / HTTP/1.1", upstream: "http://0.0.0.0:8000/", host: "mysite.com"

我打算将其更改为TextField小部件并使用setState({})来检查是否至少填充了1个,但我不想使用setState。有办法解决我的问题吗?谢谢

1 个答案:

答案 0 :(得分:1)

尝试一下:

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
                      },
                  )
                ]),
              ),