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

如何在验证器外部设置TextFormFieldError

在验证器外部设置TextFormFieldError,可以通过以下步骤实现:

  1. 首先,需要创建一个全局的TextEditingController对象,用于控制文本输入框的值和错误信息。
代码语言:txt
复制
TextEditingController _controller = TextEditingController();
  1. 在TextFormField的validator属性中,定义一个自定义的验证器函数。该函数接收用户输入的值作为参数,并返回一个错误信息字符串,如果输入有效则返回null。
代码语言:txt
复制
String _validateInput(String value) {
  if (value.isEmpty) {
    return '输入不能为空';
  }
  // 其他自定义验证逻辑
  return null;
}
  1. 在TextFormField的onChanged属性中,调用验证器函数并更新错误信息。
代码语言:txt
复制
TextFormField(
  controller: _controller,
  validator: _validateInput,
  onChanged: (value) {
    setState(() {
      _controller.text = value;
      _controller.selection = TextSelection.fromPosition(
        TextPosition(offset: _controller.text.length),
      );
      _controller.setErrorText(_validateInput(value));
    });
  },
  // 其他属性
)
  1. 在TextFormField的build方法中,使用TextFormFieldError来显示错误信息。
代码语言:txt
复制
TextFormField(
  // 其他属性
  builder: (FormFieldState<String> state) {
    return Column(
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        TextFormField(
          controller: _controller,
          validator: _validateInput,
          onChanged: (value) {
            setState(() {
              _controller.text = value;
              _controller.selection = TextSelection.fromPosition(
                TextPosition(offset: _controller.text.length),
              );
              _controller.setErrorText(_validateInput(value));
            });
          },
          // 其他属性
        ),
        if (state.hasError)
          Text(
            state.errorText,
            style: TextStyle(color: Colors.red),
          ),
      ],
    );
  },
)

这样,当用户输入发生变化时,验证器函数会被调用并更新错误信息,错误信息会在TextFormField下方显示出来。如果输入有效,错误信息为null,不会显示任何错误提示。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云开发者平台:https://cloud.tencent.com/developer
  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/cdb
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发(移动推送、移动分析等):https://cloud.tencent.com/product/mobile
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链(TBaaS):https://cloud.tencent.com/product/tbaas
  • 腾讯云元宇宙(Tencent XR):https://cloud.tencent.com/product/xr
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

14.如何为Cloudera Manager集成OpenLDAP认证

Fayson在前面一系列文章中介绍了OpenLDAP的安装及与CDH集群中各个组件的集成,包括《1.如何在RedHat7上安装OpenLDA并配置客户端》、《2.如何在RedHat7中实现OpenLDAP集成SSH登录并使用sssd同步用户》、《3.如何RedHat7上实现OpenLDAP的主主同步》、《4.如何为Hive集成RedHat7的OpenLDAP认证》、《5.如何为Impala集成Redhat7的OpenLDAP认证》、《6.如何为Hue集成RedHat7的OpenLDAP认证》、《7.如何在RedHat7的OpenLDAP中实现将一个用户添加到多个组》、《8.如何使用RedHat7的OpenLDAP和Sentry权限集成》、《9.如何为Navigator集成RedHat7的OpenLDAP认证》、《10.如何在OpenLDAP启用MemberOf》、《11.如何为CDSW集成RedHat7的OpenLDAP认证》、《12.OpenLDAP管理工具Phpldapadmin的安装及使用》和《13.一键添加OpenLDAP用户及Kerberos账号》。本篇文章Fayson主要介绍如何为Cloudera Manager集成OpenLDAP认证。

02
  • Jmeter(五十五) - 从入门到精通高级篇 - 如何在linux系统下运行jmeter脚本 - 下篇(详解教程)

    上一篇宏哥已经介绍了如何在Linux系统下运行Jmeter脚本以及宏哥在运行过程中遇到的问题和解决方案,想必各位小伙伴都已经在Linux服务器或者虚拟机上已经实践并且都已经成功运行了,上一篇宏哥讲解和分享的是运行的没有调用外部文件的jmeter脚本。但是在实际工作中往往需要我们调用外部文件(包括CSV参数化文件、java需要用的架包等)进行参数传递,那么如果我们遇到这样的jmeter脚本如何在Linux系统下运行呢???那么今天宏哥就来介绍一下如何在Linux系统下运行带有外部文件的Jmeter脚本。以供各位小伙伴或者童鞋们参考,希望对你有所帮助。

    05

    接口测试理论与实践 ——PiTest + GT双管齐下,专治各种接口测试

    最近做接口测试比较多,这里做一个小小的总结,也可以帮助接口测试的同学快速上手。 首先,在做接口测试前,我们来想一想: 接口测试是什么?——含义 接口测试测什么?——对象 接口测试怎么测?——方法 【接口测试是什么】——含义 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等 这里给了我们启示,在接口测试中我们需要重点关注的是:数据+逻辑: 数据:参数,返回值,过程中的

    07
    领券