如何验证文本字段的值已更改?

Abd*_*edy 7 forms dart flutter

当文本表单字段的值发生变化时,如何自动验证它?

我试过

bool _autoValidate = false;
Run Code Online (Sandbox Code Playgroud)
TextFormField(
                autovalidate: _autoValidate ,
                onChanged: (value) {
                  setState(() {
                    _autoValidate = true;
                  });
                },
                validator: (value) {
                  if (value.length < 5) {
                    return 'False';
                  } else {
                    return 'True';
                  }
                },
              ),
Run Code Online (Sandbox Code Playgroud)

但不起作用,TextFormField验证时仍然没有显示错误。

我需要一种方法来打开对更改的文本的验证。

Ped*_*ngo 27

Flutter 现在有一个 API,仅在内容更改时验证表单字段。您只需使用该autovalidateMode参数并将其设置为AutovalidateMode.onUserInteraction

以下文本字段仅在用户更改其内容时才会验证:

    class HomeScreen extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(),
          body: Center(
            child: TextFormField(
              autovalidateMode: AutovalidateMode.onUserInteraction,
            ),
          ),
        );
      }
    }
Run Code Online (Sandbox Code Playgroud)

有关何时验证的更多选项,请参阅AutovalidateMode文档。

该API现已在最新的稳定渠道上提供。如果它解决了您的问题,请告诉我。