TextFormField onSave 和onChange

背景:用户在注册发送验证码的时候,发现一直获取不了_username

原因:_username 用的是 TextFormField onSave 由于这个时候表单并未提交,未触发onSave事件,所以一直取不到_username的值。

  submit() {var state = this._formKey.currentState;if (state != null && state.validate()) {state.save();Future(() async {return OauthService.loginVerCode(_username, _validateCodeId, _validateCode);}).then((value) =>{if (value) {Navigator.pushNamed(context, '/')}});}}

在Flutter的TextFormField中,onSaved和onChange是两个重要的回调函数,它们分别用于处理表单字段的保存逻辑和实时输入变化。下面是这两个属性的详细说明及如何使用它们:
1. onSaved
用途: 当调用FormState.save()方法时(通常在表单提交时),会触发onSaved回调。这个回调适合用来验证用户输入并持久化数据到模型对象中。
参数: 接受一个ValueSetter<T>类型的参数,其中T是TextFormField的controller的text属性的类型(通常是String)。这个回调允许你直接对表单字段的值进行操作或存储。
示例:

TextFormField(onSaved: (value) {// 这里的"value"就是用户输入的内容,你可以在这里进行数据验证和保存操作// 例如:_username = value; // 假设_username是类的一个成员变量,用于存储用户名},
)

2. onChanged
用途: 每当TextFormField中的文本发生变化时,就会调用onChanged回调。这个回调适用于实时响应用户输入,比如进行实时验证或更新UI。
参数: 接受一个ValueChanged<String>类型的参数,即每当文本变化时都会调用的函数,传入最新的文本值。
示例:

TextFormField(onChanged: (value) {// "value"是当前输入框的最新值,可以在此处执行实时验证或更新其他UI元素// 例如显示字符计数或即时反馈输入是否有效setState(() {_inputText = value; // 更新状态,以便可能影响UI的其他部分});},
)

综合使用
通常,onChanged用于提供即时反馈或动态处理,而onSaved则在表单提交时用于数据验证和最终保存。结合两者,可以创建交互性好且健壮的表单体验。

TextFormField(onChanged: (value) {// 实时处理逻辑setState(() {_username = value;});},onSaved: (value) {// 表单提交时的处理逻辑_finalUsername = value; // 确保数据有效后保存到最终变量},
)

记得在表单的RaisedButton或ElevatedButton的onPressed中调用_formKey.currentState.save();来触发所有onSaved回调。这里_formKey是与Form widget关联的GlobalKey<FormState>。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/17580.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

POLARDB:新零售用户MySQL上云最佳选择

什么是云数据库POLARDB&#xff1f; POLARDB是阿里云自主研发的最新一代RDS关系型数据库&#xff0c;是特别针对互联网场景设计的Cloud-Native 云原生数据库。POLARDB for MySQL版本&#xff0c;在提供100%兼容MySQL5.6/8.0的关系型事务处理ACID特性之上&#xff0c;能够提供完…

记录集连接——kettle开发25

一、记录集连接 记录集连接就像数据库的左连接、右连接、内连接、外连接。 需要注意的是&#xff0c;因为我们是对数据流进行操作&#xff0c;因此我们在进行记录集连接操作前&#xff0c;需要先将数据进行排序。 新版的KETTLE&#xff0c;名字都改了&#xff0c;叫Merge joi…

# WIN10/WIN11 找不到【应用商店 Microsoft.WindowsStore】怎么办?

WIN10/WIN11 找不到【应用商店 Microsoft.WindowsStore】怎么办&#xff1f; 解决方法&#xff1a; 1、右键【开始】菜单&#xff0c;点击【Windows PowerShell (管理员)】&#xff0c;输入&#xff1a; Get-AppxPackage -allusers | Select Name, PackageFullName 2、查询…

输入与输出的魔法:探索Python的内置函数

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、从键盘捕获输入&#xff1a;input()函数的力量 二、打印输出&#xff1a;print()函数的…

R语言学习 - 箱线图一步法

箱线图 - 一步绘制 绘图时通常会碰到两个头疼的问题&#xff1a; 1、有时需要绘制很多的图&#xff0c;唯一的不同就是输入文件&#xff0c;其它都不需要修改。如果用R脚本&#xff0c;需要反复替换文件名&#xff0c;繁琐又容易出错。 (R也有命令行参数&#xff0c;不熟&…

Python爬虫编写指南

一、确定目标 在开始编写爬虫之前&#xff0c;你需要明确你的目标。你想要从哪个网站抓取数据&#xff1f;你想要获取哪些信息&#xff1f;这些信息通常通过查看网站的HTML结构来确定。 二、选择工具 Python是一个强大的编程语言&#xff0c;有许多库可以帮助你编写爬虫&…

yudao 文件分片上传

FileController GetMapping("/file-url")Operation(summary "获取文件地址")ApiResponse(description "0文件不存在")OperateLog(enable false)public CommonResult<String> getFileUrl(String identifier) {String url0 fileService.…

大模型实战-动手实现单agent

文章目录 入口cli_main.py工具tools.pyprompt prompt_cn.pyLLM 推理 model_provider.py致谢 agent 的核心思想&#xff1a;不断调用 LLM&#xff08;多轮对话&#xff09;&#xff0c;让 LLM 按照指定的格式&#xff08;例如 json&#xff09;进行回复&#xff0c;提取 LLM 回复…

仅1天录用!3天见刊!这本毕业“水刊”,全科都收,极速上线!

【欧亚科睿学术】 01 期刊简介 【期刊类别】计算机工程类EI 【期刊简介】最新EI期刊目录内源刊 【版面情况】仅10篇版面 【审稿周期】预计2-4周左右录用 【检索情况】EI&Scopus双检 【征稿领域】计算机工程领域相关稿件均可。 02 征稿领域 该期刊发表有关计算机在各…

使用`War`包部署`Jenkins`(超级详细)

使用War包部署Jenkins(超级详细) 别着急&#xff0c;你看这年复一年&#xff0c;春光不必趁早&#xff0c;冬霜不会迟到。过去的都会过去&#xff0c;该来的都在路上&#xff0c;一切都是刚刚好。 网站说明 https://get.jenkins.io/war-stable/ war包下载地址 https://www.jenk…

Python | R | MATLAB群体消息和遗传病筛选多元统计模型

&#x1f3af;要点 &#x1f3af;概率分布结构模型&#xff1a;有向无环图模型结构、部分有向无环图、动态贝叶斯网络、结构方程模型、广义噪声或模型、连接树、聚类图、因子图、马尔可夫链 | &#x1f3af;多类分类模型&#xff1a;朴素贝叶斯分类器、求和朴素贝叶斯分类器、…

合作伙伴推广不积极?跟奖金到账时间有关!

在推广返现活动中&#xff0c;对于合作伙伴推广者来说&#xff0c;奖金是否及时到账是他们最关心的问题之一。如果品牌主一直不审批奖励数据&#xff0c;推广者则无法及时收到奖金&#xff0c;这很容易影响他们的推广积极性和忠诚度。怎样能够提高奖励审核的效率呢&#xff1f;…

java中Future使用详细介绍

一、什么是Future&#xff1f; 在并发编程中&#xff0c;可以通过Future对象来异步获取结果。 使用Thread或runnable接口都不能获取异步的执行结果&#xff0c;因为他们没有返回值。而通过实现Callable接口和Future就可以获取异步执行的结果&#xff0c;当异步执行结束后&…

SSRS中使用QRCoder生成二维码

步骤 1.下载QRCoder.dll 下载地址&#xff1a;https://download.csdn.net/download/wjl7126180/89369398 2.使用gacutil.exe安装QRCoder.dll到GAC(Global Assembly Cache) gacutil.exe是.NET Framework中的全局程序集缓存工具&#xff0c;如果没有安装.NET Framework&#…

怎么把纸质文件扫描成电子版?方法教会你!

怎么把纸质文件扫描成电子版&#xff1f;在数字化时代&#xff0c;将纸质文件转换为电子版已成为日常工作和学习的必备技能。无论是合同、证件、笔记还是其他文档&#xff0c;通过扫描软件都能轻松实现电子化&#xff0c;方便存储、查阅和分享。以下将介绍几款功能强大、操作简…

身份认证页面该怎么设计更加合理?

一、认证页面的作用 认证页面在应用程序中具有以下几个重要的作用&#xff1a; 验证用户身份&#xff1a;认证页面的主要作用是验证用户的身份。通过要求用户提供正确的凭据&#xff08;如用户名和密码、生物特征、验证码等&#xff09;&#xff0c;认证页面可以确认用户是合法…

Linux 生产跑批脚本解读

1.查看定时任务 2.脚本-目录结构 1&#xff09;config.ini 2&#xff09;run.sh 3.命令解读 1&#xff09;ls -1 路径文件夹 含义&#xff1a;ls -1 /home/oracle/shell/config/ 将文件夹config内的文件全部列出 [oracleneptune config]$ ls -1 /home/oracle/shel…

C#转义字符

转义字符 是字符串的一部分 用来表示特殊含义的字符 比如 在字符串中表示 单引 双引 空行.... 使用方法: string str "恁好啊 \n恁好啊 靓仔";* 常用的转义字符 单引号 \ 双引号 \" 换行 \n 斜杠 \\ 制表符 (tab键&#xff09; \t 空字符 \0 光标退格 \b 警报…

适合下班做的副业兼职、1天挣300,7天涨粉2万

最近小红书上有类视频火了&#xff01; 周周近财&#xff1a;让网络小白少花冤枉钱&#xff0c;赚取第一桶金 利用AI制作的漫画解说历史小说视频。视频以《明朝那些事儿》为蓝本&#xff0c;一上线就疯狂吸粉&#xff0c;多条视频内容都大爆了。 就是这个账号&#xff0c;仅仅…

【华为】BFD与静态路由和RIP联用

【华为】BFD与静态路由和RIP联用 实验需求配置AR1AR2AR3AR4效果抓包查看 实验需求 如上图组网所示&#xff0c;在R1上配置到达R4的Loopback0。 4.4.4.4/32网段的浮动静态路由&#xff0c;正常情况下通过R3访问R4。 当R3故障时&#xff0c;自动选路通过R2访问R4的Loopback0;在R…