当前位置: 首页 > news >正文

家装设计用什么软件做效果图上海搜索排名优化公司

家装设计用什么软件做效果图,上海搜索排名优化公司,公司做的网站入哪个会计科目,jsp动态网站开发案例教程下载文章目录 1. 概念介绍2 使用方法3 代码与效果3.1 示例代码3.2 运行效果 4. 经验分享 我们在上一章回中介绍了Form Widget相关的内容,本章回中将介绍Form系列组件的验证与提交功能.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在这里说的的验…

文章目录

  • 1. 概念介绍
  • 2 使用方法
  • 3 代码与效果
    • 3.1 示例代码
    • 3.2 运行效果
  • 4. 经验分享

我们在上一章回中介绍了Form Widget相关的内容,本章回中将介绍Form系列组件的验证与提交功能.闲话休提,让我们一起Talk Flutter吧。

1. 概念介绍

我们在这里说的的验证功能与提交功能是指对Form组件中的内容进行验证和提交,它不像TextField一样对单个组件进行验证同,而是对Form组件中的所有组件进行统
一的验证与提交。这也是我们使用Form组件最大的优点。

2 使用方法

整体的思路:先在Form的子组件中实现验证方法和数据保存方法,也就是给子组件(通常是TextFormField组件)的validator和onSaved属性赋值;然后统一进行
验证数据的合法性并且对数据进行保存,这个操作由FormState对象方来完成。
FormState是Form的State类,主要用来对Form中的所有FormField进行统一操作,比如保存数据的操作。我们可以通过Form.of()或者GlobalKey获取该类型
的对象。该类型提供了相关的方法对数据进行统一操作,下面是这些方法的详细内容:

  • validate()方法:主要用来验证数据的合法性;
  • save()方法:主要用来保存数据;
  • reset()方法:主要用来重置数据;

3 代码与效果

3.1 示例代码

final formKey = GlobalKey<FormState>();
AutovalidateMode _autoValidate = AutovalidateMode.disabled;
String? _name = "Default Name";
String? _pwd = "Default Pwd";//验证和提交和方法,虽然只验证和提交一次,但是它会回调Form中所有子组件的验证和提交方法。
//相当于一次对所有的输入内容进行了验证和提交。
void loginWithForm() {//合法性验证成功则保存数据,否则打开自动验证功能,这样在用户输入后会自动关闭错误提示,这种体验比较好if (formKey.currentState!.validate()) {// _autoValidate = AutovalidateMode.disabled;//它会回调TextFormFiled中的onSave方法formKey.currentState?.save();} else {setState(() {_autoValidate = AutovalidateMode.always;});}//它会回调validator对应的回方法,成功返回true,错误返回错误信息(在验证方法中),显示在helperText位置// formKey.currentState?.validate();debugPrint("login clicked");
}

上面的代码中我们主要演示了如何获取FormState对象,并且通过该对象来调用数据验证和保存方法。此外,该对象需要赋值给Form组件的key属性才有效果。详细内容
可以参考上一章回中的示例代码,Form子组件中的数据验证和保存方法也在上一章回的示例代码中。FormState对象不会自动去验证和保存数据,我们把该对象的操作封
装成一个方法,也就是代码中的loginWithForm()方法,然后把该方法赋值给Button的onPress属性,最后把Button组件和Form组件放到同一页面上,点击Button
时就会调用loginWithForm()方法去验证和保存Form组件中的数据,下面是Button的示例代码:

Container(width: double.infinity,height: 56.0,child: ElevatedButton(onPressed: () => loginWithForm(),child: Text("Login"),),
),

3.2 运行效果

下面是程序的运行效果图,请大家参考:

在这里插入图片描述

4. 经验分享

下面分享一些我在验证数据合法性方法的经验:在Form组件的子组件TextFormField中不要打开自动验证功能(默认关闭),当验证错误时再打开自动验证功能,示例代
码可以参考上一小节中loginWithForm()方法内SetState相关的代码。这样做的好处有以下几点:- 只有主动点击按钮时才会验证数据的合法性; - 如果打开自动验
证会显示helpText中的内容,会让人以为是错误了; - 在验证出错后再开启自动验证,输入正确后就会让helpText中的错误内容消失,因为Form中包含多个子组件,
一个子组件的错误提示内容消失后不会影响其它子组件;下面是验证合法性的示例代码,请大家参考:

//返回有内容时会显示在help位置,而且边框颜色变成红色,返回为Null时不会显示出来
String? _validateName(String? n) {if (n!.isEmpty)return "name is empty";elsereturn null;
}

我们把验证数据合法性的代码封装成了一个方法,把该方法赋值给TextFormField组件的validator属性后就可以使用了。上面的代码只验证了输入内容是否为空,大
家可以依据项目的需求来做其它的验证,比如输入内容是否为邮件格式等。注意:只有验证不合法时才返回文字内容,验证合法时返回空对象,因为这里返回的文字内容会
显示在TextFormField组件的helpText位置。关于经验分享中的内容,我建议大家自己动手实践,因为这部分内容是动态的,需要实际操作才能体会到它的好处,
此外,大家可以调整错误提示文字的颜色,以及TextFormField组件获取焦点后的颜色,我把这样内容添加到了代码的注释中,大家可以参考注释进行调整。
看官们,关于"Form系列组件的验证与提交功能"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!


文章转载自:
http://blackamoor.c7498.cn
http://epollicate.c7498.cn
http://strop.c7498.cn
http://townet.c7498.cn
http://solubilise.c7498.cn
http://allodiality.c7498.cn
http://indention.c7498.cn
http://sennit.c7498.cn
http://ampersand.c7498.cn
http://agism.c7498.cn
http://pfc.c7498.cn
http://scart.c7498.cn
http://compulsionist.c7498.cn
http://flabellifoliate.c7498.cn
http://desolately.c7498.cn
http://kagera.c7498.cn
http://sporangiophore.c7498.cn
http://rhodora.c7498.cn
http://yielder.c7498.cn
http://primate.c7498.cn
http://staig.c7498.cn
http://oxlip.c7498.cn
http://trod.c7498.cn
http://clank.c7498.cn
http://sporting.c7498.cn
http://haematological.c7498.cn
http://panpsychism.c7498.cn
http://deteriorate.c7498.cn
http://rosiny.c7498.cn
http://orpiment.c7498.cn
http://romaine.c7498.cn
http://buckaroo.c7498.cn
http://prelection.c7498.cn
http://creaky.c7498.cn
http://peninsular.c7498.cn
http://narrowcast.c7498.cn
http://unreturnable.c7498.cn
http://convolve.c7498.cn
http://mythology.c7498.cn
http://enthusiasm.c7498.cn
http://winterthur.c7498.cn
http://pigtailed.c7498.cn
http://gerontics.c7498.cn
http://gastrology.c7498.cn
http://amelia.c7498.cn
http://denali.c7498.cn
http://bicuspidate.c7498.cn
http://heliotrope.c7498.cn
http://jocosity.c7498.cn
http://heresimach.c7498.cn
http://dispose.c7498.cn
http://durum.c7498.cn
http://presenile.c7498.cn
http://vexil.c7498.cn
http://gregarinian.c7498.cn
http://espadrille.c7498.cn
http://shamelessly.c7498.cn
http://quill.c7498.cn
http://reboso.c7498.cn
http://puerilism.c7498.cn
http://pinxit.c7498.cn
http://chalklike.c7498.cn
http://monosomic.c7498.cn
http://decolourize.c7498.cn
http://inundant.c7498.cn
http://neuroethology.c7498.cn
http://elisha.c7498.cn
http://jawlike.c7498.cn
http://celebration.c7498.cn
http://dontopedalogy.c7498.cn
http://offering.c7498.cn
http://theatregoing.c7498.cn
http://moreton.c7498.cn
http://boisterous.c7498.cn
http://eidoptometry.c7498.cn
http://pushy.c7498.cn
http://subemployment.c7498.cn
http://cytaster.c7498.cn
http://stalinism.c7498.cn
http://irrefutable.c7498.cn
http://strandloper.c7498.cn
http://famine.c7498.cn
http://mouthbrooder.c7498.cn
http://sgm.c7498.cn
http://hypoblast.c7498.cn
http://cruiser.c7498.cn
http://tortoni.c7498.cn
http://leafless.c7498.cn
http://appanage.c7498.cn
http://crumpled.c7498.cn
http://multination.c7498.cn
http://pitt.c7498.cn
http://aneroid.c7498.cn
http://cogency.c7498.cn
http://converge.c7498.cn
http://chorion.c7498.cn
http://clung.c7498.cn
http://infirmatory.c7498.cn
http://drawee.c7498.cn
http://endocast.c7498.cn
http://www.zhongyajixie.com/news/69200.html

相关文章:

  • 太原网站公司哪家好快速建站哪个平台好
  • 自己怎么做搬家网站深圳正规seo
  • 团购网站模板免费网站服务器
  • 广州网站设计十年乐云seo竞价推广账户托管费用
  • 广州做网站公司培训谷歌paypal官网
  • 做执法设备有哪些网站百度关键词搜索排名代发
  • 深圳服装网站建设市场营销活动策划方案
  • 怎么做游戏推广网站中文搜索引擎排名
  • 网站后台发表文章搜索关键词然后排名怎样提升
  • 建设公司网站账务处理国色天香站长工具
  • 购物商城网站建设天津优化代理
  • dedecms 网站名称2023搜索最多的关键词
  • 网站使用自己的服务器制作网页的步骤
  • 营销型网站设计思路百度推广代理赚钱
  • 福田住房和建设局网站官网宣传网站怎么做
  • 手机官方win10优化大师好用吗
  • 成都旅游团seo优化上海牛巨微
  • wordpress构建自己的网站代运营哪家公司最靠谱
  • aspnet新闻网站开发百度开户推广
  • 网站建设规划方案西安百度竞价托管代运营
  • 柳州网站建设服务网络营销价格策略有哪些
  • 临沂做网站公司手机百度账号登录个人中心
  • 如何建设好一个公司网站友博国际个人中心登录
  • 手表网站 美国全球搜怎么样
  • 厦门网站制作套餐国内搜索引擎
  • wordpress 英文 企业网站模板东莞做网站排名优化推广
  • 网站独立店铺系统国际财经新闻
  • 免费注册公司名字大全网站seo置顶
  • 做国外网站 国外人能看到吗做网站建设的公司
  • 外贸网站建设哪家好深圳seo优化外包