自定义验证TextFormField Flutter

时间:2019-03-21 14:15:58

标签: flutter

我里面有Form和TextFormField:

 new Expanded(
  child: TextFormField(
    style: new TextStyle(color: Colors.white),
    keyboardType: TextInputType.text,
    validator: (String value) {
      if (value.length <= 5) {
       //Show error as a Snackbar
      }
    },
    onSaved: (String value) {},

  ),
)

在Buttom印刷机上,我正在检查是否所有字段都有效:

 if (_formKey.currentState.validate()) {
      _submit();
 }

现在的问题是,当您调用validate()且未在validate()方法中返回任何文本时,它将认为它返回true。

我不想在textField下显示错误,而是要显示为Snackbar。

此外,我尝试在每个验证器方法中设置一个额外的标志并进行设置,但是如果表单中有多个字段,它将变得很复杂。

任何人都可以告诉我如何处理_formKey.currentState.validate()应该返回false和validator方法的情况 TextFormField内部不需要返回错误文本。

1 个答案:

答案 0 :(得分:1)

如果您不想在TextField中显示错误,则不应使用 Form 小部件和 TextFormField

您应该由控制器进行验证

例如

=SUMIFS(B:B,A:A,"*A*B*C*")