Validation 关于表单验证

Validation 关于表单验证,validation,flutter,Validation,Flutter,我错在哪里?验证不起作用。验证时打印错误。而文本表单字段打印正常,而验证打印错误 Form( key: _formKey, child: Column(children: <Widget>[ TextFormField(validator: (val) { if (val.length == 6) { print('okay'); } else { prin

我错在哪里?验证不起作用。验证时打印错误。而文本表单字段打印正常,而验证打印错误

Form(
      key: _formKey,
      child: Column(children: <Widget>[
        TextFormField(validator: (val) {
          if (val.length == 6) {
            print('okay');
          } else {
            print('error');
          }
        }),
        TextFormField(


            validator: (val) => val.length == 6 ? 'Okay' : 'dsfj'),
        RaisedButton(
            child: Text('test'),
            onPressed: () {
              if (_formKey.currentState.validate()) {
                print('true');
              } else {
                print('false');
              }
            })
      ]),
    ),
表单(
键:_formKey,
子项:列(子项:[
TextFormField(验证器:(val){
如果(val.length==6){
打印(‘好’);
}否则{
打印(“错误”);
}
}),
TextFormField(
验证程序:(val)=>val.length==6?'Okay':'dsfj'),
升起的按钮(
子项:文本('test'),
已按下:(){
if(_formKey.currentState.validate()){
打印(“真”);
}否则{
打印(“假”);
}
})
]),
),

基本上,即使条件验证,我也会在验证器中返回字符串。因此
(\u formKey.currentState.validate())
在这两种情况下都返回false,即使文本表单字段是否验证。 因此,如果您的条件满足,请尝试返回null以避免此类问题

TextFormField(validator: (val) => val.length < 6 ? 'Password is too short' : null),
TextFormField(验证器:(val)=>val.length<6?“密码太短”:null),
像这样。
谢谢

什么不起作用?它没有打印“OK”?请参阅-它的内容是:“用于验证表单字段的签名。如果输入无效,则返回要显示的错误字符串,否则返回null。由FormField.validator使用。”基本上,我希望在表单验证时导航到新屏幕。那么怎么做呢?你看到我上面的评论了吗?你为什么不看看官方文件?如果还不清楚,请阅读一些官方教程,如:OK。您可以点击答案旁边的复选标记,将自己的答案标记为已接受。请您对我的答案投赞成票?如果是,请对我的回答投赞成票。