首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

TextFormField验证器不工作-在null上调用了方法“validate”

TextFormField是Flutter中的一个用于输入文本的小部件,它可以包含一个验证器(validator)函数,用于验证用户输入的内容是否符合要求。当用户提交表单时,TextFormField会调用验证器函数来验证输入的内容。

在这个问题中,出现了一个错误提示:在null上调用了方法“validate”。这个错误通常是因为没有给TextFormField的验证器函数赋值,或者赋值为null导致的。

要解决这个问题,首先需要确保给TextFormField的验证器函数赋值。验证器函数是一个接受一个字符串参数并返回一个字符串的函数,用于验证输入的内容。可以在TextFormField的validator属性中指定验证器函数,例如:

代码语言:txt
复制
TextFormField(
  validator: (value) {
    if (value.isEmpty) {
      return '请输入内容';
    }
    return null;
  },
)

在上面的例子中,验证器函数检查输入的内容是否为空,如果为空则返回一个错误提示字符串,否则返回null表示验证通过。

另外,还可以使用其他验证器函数来验证不同的输入要求,例如正则表达式验证、长度验证等。Flutter提供了一些内置的验证器函数,也可以自定义验证器函数来满足特定的需求。

关于TextFormField的更多信息和使用示例,可以参考腾讯云的Flutter文档:TextFormField

总结起来,要解决TextFormField验证器不工作的问题,需要确保给TextFormField的验证器函数赋值,并且验证器函数返回正确的验证结果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Flutter Form表单控件超全总结

null:'账号最少6个字符'; }, ) TextFormField效果如下: ? onSaved是一个可选参数,当Form调用FormState.save时才会回调此方法。...autovalidate参数为是否自动验证,设置为true时,TextField发生变化就会调用validator,设置false时,FormFieldState.validate调用时才会回调validator...validator验证函数,输入的值匹配的时候返回的字符串显示TextField的errorText属性位置,返回null,表示没有错误。...使用Form的时候需要设置其key,通过key获取当前的FormState,然后可以调用FormState的save、validate、reset等方法,一般通过如下方法设置: final _formKey...; if(_state.validate()){ _state.save(); } validate方法验证表单数据的合法性,此方法会调用每一个FormField的validator回调,此回调需要字符串表示数据验证不通过

2.1K20

Flutter Form表单控件超全总结

null:'账号最少6个字符'; }, ) TextFormField效果如下: [1240] onSaved是一个可选参数,当Form调用FormState.save时才会回调此方法。...autovalidate参数为是否自动验证,设置为true时,TextField发生变化就会调用validator,设置false时,FormFieldState.validate调用时才会回调validator...validator验证函数,输入的值匹配的时候返回的字符串显示TextField的errorText属性位置,返回null,表示没有错误。...使用Form的时候需要设置其key,通过key获取当前的FormState,然后可以调用FormState的save、validate、reset等方法,一般通过如下方法设置: final _formKey...; if(_state.validate()){ _state.save(); } validate方法验证表单数据的合法性,此方法会调用每一个FormField的validator回调,此回调需要字符串表示数据验证不通过

3.1K00

Flutter版本玩Android客户端(6)——登录注册模块以及文章收藏与取消

保存cookie的实现 这里是通过给Dio增加了一个拦截来实现的,具体代码如下: ApiClient._() { dio = Dio(); dio.options.connectTimeout...pathprovider库获取了路径,作为cookie保存的路径,使用了cookiejar库作为保存、加载cookie。...登录注册模块 登录注册模块主要涉及表单Form这个Widget,其中TextFormField使用TextEditingController进行控制,可以通过该类来获取对应TextFormField的数据...一些基本的检查可以交给validate函数,比如注册时对确认密码的校验,第二次输入的密码得和第一次相同。...null : '两次密码不相同') : '密码不能为空'; }, ), 状态保存 目前只登录成功后保存了用户名

2.9K41

Flutter 入门指北之输入处理(登录界面实战)

,该方法只有 StatefulWidget 才有,当需要修改某个值的内容的时候,通过该方法进行修改,最后的效果图如下,当输入框文字发生变化的时候,监听的 Text 内容会随之改变,获取内容的 Text...,但是还有个更加方便的方法,可以直接使用部件 TextFormField 来实现,不过需要我们在外层加一个 Form 部件,接下来,就要准备通过 TextFormField 来撸一个登录界面,但是这之前...做好准备工作,我们就可以撸一个登录界面了~ 撸一个登录界面 开撸之前,我们先看下最终的效果图吧,虽然是比较常用的界面 ? ?...Column(mainAxisAlignment: MainAxisAlignment.center, children: [ // 顶部页面切换指示,...FocusScope.of(context).requestFocus(FocusNode()); // 判断表单是否有效 if (_formKey.currentState.validate

1.9K50

《JavaScript 模式》读书笔记(7)— 设计模式2

每个装饰方法uber(继承的对象)上调用了相同的方法并获取其值,此外它还继续执行了一些操作。   ...然而,本实现中却采用了恰好相反的方式:decorate()仅用于追加列表,而getPrice()却完成所有工作。...,并且也涉及继承。...可以创建一个具有validate()方法验证(validator)对象。无论表单的具体类型是什么,该方法都将会被调用,并且总是返回相同的结果,一个未经验证的数据列表以及任意的错误消息。   ...增强validator对象的方法是添加更多的类型检查。如果在多个页面中使用它,很快就会有一个优良的特定检查集合。以后,针对每个新的用例,所需要做的就是配置该验证并运行validate()方法

41310

《JavaScript 模式》读书笔记(7)— 设计模式2

每个装饰方法uber(继承的对象)上调用了相同的方法并获取其值,此外它还继续执行了一些操作。   ...然而,本实现中却采用了恰好相反的方式:decorate()仅用于追加列表,而getPrice()却完成所有工作。...,并且也涉及继承。...可以创建一个具有validate()方法验证(validator)对象。无论表单的具体类型是什么,该方法都将会被调用,并且总是返回相同的结果,一个未经验证的数据列表以及任意的错误消息。   ...增强validator对象的方法是添加更多的类型检查。如果在多个页面中使用它,很快就会有一个优良的特定检查集合。以后,针对每个新的用例,所需要做的就是配置该验证并运行validate()方法

31630

LinqToExcel.Extend 源码分析

目录结构.png 目录结构功能 Extend 通用扩展方法 Parameter 公共实体类 Parser 解析 Validate 验证工具集 ?...我希望的结果是 实例化验证对象,参数是验证文件的路径 调用验证方法,可以区分工作验证,可以选择添加或添加逻辑验证 验证成功或失败都返回一个对象,如果验证失败,返回的对象中要包含出错的信息(尽可能细化...) ---- 基于上述的设计理念 我定义了三个对象 RowValidate 行验证 WorkSheetValidate 工作验证 WorkBookValidate 工作簿验证 RowValidate...定义索引,这样可以通过外部调用WorkSheetValidate的验证方法 /// /// 工作簿验证 /// public...这是一个泛型方法方法逻辑很简单 首先验证数据有效性 ValidateParameter 如果返回的错误集合为空,验证逻辑有效性ValidateMatching 最后返回验证集合

62240

CA1062:验证公共方法的参数

值 规则 ID CA1062 类别 设计 修复是中断修复还是非中断修复 非中断 原因 外部可见方法取消引用其中一个引用参数,而验证该参数是否 null(Visual Basic 中 Nothing)...还可以指示 null 检查验证方法。 规则说明 对于传递给外部可见方法的所有引用参数,都应检查其是否为 null。...= true Null 检查验证方法 如果代码引用的库或项目中调用了特殊的 null 检查验证方法,则此规则可能导致误报。...例如,若要将名为 Validate 的所有方法标记为 null 检查验证方法,请将以下键值对添加到项目中的 editorconfig 文件: dotnet_code_quality.CA1062.null_check_validation_methods...若要解决冲突,请使用 static( Visual Basic 中为 Shared)方法来检查复制的对象是否不为 null

70330

详述Spring对Bean Validation支持的核心API:Validator、SmartValidator、LocalValidatorFactoryBean...【享学Spring】

应用程序特定对象的验证,这是Spring自己的抽象,注意区别于javax.validation.Validator。...,最终都委托给了org.springframework.validation.Validator,这样就可以完美的和JSR结合起来使用了,功能更加的强大~ 虽然本类它是个Class实体类,但是一般来说建议直接使用它...它可以配置ValidatorFactory验证工厂、MessageInterpolator插值等… public class CustomValidatorBean extends SpringValidatorAdapter...就是依赖于它来给提供验证~ 它是Spring上下文中javax.validation的中心配置类。..."); this.beanFactory = beanFactory; } // 注意:此处是直接调用了create方法,放进容器 @Override public <T extends

2.9K20

struts2(四)之输入校验

用户的输入验证,必须做,且工作量巨大。   ...二、编程式校验 2.1、前提条件   前提:动作类必须继承ActionSupport         重写validate方法   注意:      1)validate方法会在动作方法执行之前,进行验证...注意:指定某个方法校验会在公共校验方法之前被调用,也就是说会先执行validateXXX(),然后执行validate()方法。...问题:当重写了validate方法,它会对动作类中的所用动作方法进行验证。     举例: ?     UserAction中添加动作方法 ?     testValidate.jsp ?     ...-- required是一个只验证是否为null的内置验证,不去除空格 --> 请输入性别 </field-validator

1.1K80

yii2.0验证

你可以重写该方法或者响应此事件,来验证开始之前,先进行一些预处理的工作。 (比如,标准化数据输入)该方法应该返回一个布尔值,用于标明验证是否通过。...你可以重写该方法或者响应此事件,来验证结束之后, 再进行一些收尾的工作。...临时验证 有时,你需要对某些没有绑定任何模型类的值进行 临时验证。 若你只需要进行一种类型的验证 (e.g. 验证邮箱地址),你可以调用所需验证validate() 方法。...基于这个理由, 你应该始终如前文所描述的那样,通过调用yii\base\Model::validate() 方法执行服务验证。 使用客户端验证 许多核心验证都支持开箱即用的客户端验证。...具体实践中, 你可以使用 in 核心验证来达到同样的目的。

2.6K61

两种方式实现Spring 业务验证

考虑到上面这些问题,Spring 提供了两种主要类型的验证: 一个是实现Validator 接口来创建自定义验证,用于服务端数据校验。...Validator 接口通过使用 Errors 对象来工作,以便在验证时,验证可以向 Errors 对象报告验证失败。...", "name.empty"); } } 上面代码示例中的静态方法 rejectIfEmpty() 方法用于拒绝name属性,当name 属性是 null 或者是 空串的时候。...要在 POJO 上进行验证,需要调用 validator.validate 方法验证结果以 ConstraintViolation 接口的集合形式返回。...,因为 firstname 属性的要求是长度介于 2 - 60 之间并且不能为null,所以这里只用了一个字符验证,genre 属性不能为null,最核心的验证方法就是 singerValidationService.validateSinger

76820

发送邮件、重置密码业务实战

前言 忘记密码并通过邮件重置密码是一个常见的业务需求,开发我的个人小项目过程中,也需要用到这个业务,今天就给大家带来一个业务实战。...开发环境 springboot:1.5.16.RELEASE 业务流程 根据controller中函数分为两个部分: 用户申请重置邮件: 用户页面中输入邮箱 服务检查是否允许重置(邮箱所指向用户是否存在...,重置是否过于频繁,重置是否到达日请求上限) 验证通过后,想validate表写入申请记录,包含token,用户邮箱和id 发送邮件(包含带有token的链接) 用户点击邮件内连接 跳转到新密码输入网页...提交重置密码请求(POST中包含token,新密码) 用户重置密码 服务验证token(token是否过期,该用户是否发起过其它新token) 通过validate表记录查找用户id,修改用户密码...,由于我使用了mybatis-generator插件,需要运行插件生成对应pojo和mapper。

73820
领券