如何验证颤振中的单个表单字段

Mar*_*S82 8 flutter

我有一个包含多个控件的表单,但分布在多个选项卡上。如果用户单击按钮,我喜欢为单个字段调用验证器函数。

Spa*_*atz 17

要验证具有FormFieldState类型的单个表单字段创建键,请将该键分配给表单字段并调用validate键当前状态的方法:

class MyCustomForm extends StatefulWidget {
  @override
  MyCustomFormState createState() {
    return MyCustomFormState();
  }
}

class MyCustomFormState extends State<MyCustomForm> {
  final _formFieldKey = GlobalKey<FormFieldState>();

  @override
  Widget build(BuildContext context) {
    return Form(
        child: Column(children: <Widget>[
      TextFormField(
        key: _formFieldKey,
        validator: (value) {
          if (value.isEmpty) {
            return 'Please enter some text';
          }
          return null;
        },
      ),
      TextFormField(
        validator: (value) {
          if (value.isEmpty) {
            return 'Please enter some text';
          }
          return null;
        },
      ),
      RaisedButton(
        onPressed: () {
          if (_formFieldKey.currentState.validate()) {
            Scaffold.of(context)
                .showSnackBar(SnackBar(content: Text('Processing Data')));
          }
        },
        child: Text('Submit'),
      ),
    ]));
  }
}

Run Code Online (Sandbox Code Playgroud)