




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-State副作用钩子-EffectHookCustomHookContextHookContextHook是React16.8一个新增项,它可以让你在不编写class的情况下使用state以及其他的React状态钩子StateimportimportReact,{useState}fromexportdefaultfunctionHooksTest()useState(initialState),接收初始状态,返回一个状态变量和其更新函数const[count,setCount]=useState(0);return<p>Youclicked{count}}-EffectimportimportReact,{useState,useEffect}from"react";useEffect(()=>{//Update titleusingthebrowser.title`您点击了${count次-Custom其他Context相关constconstMyContext=constconst{Provider}=MyContext;exportdefaultfunctionApp()return<Providervalue={{foo:<Child}functionfunctionreturn}exportdefaultfunction{return<Providervalue={{foo:"bar"{value=><Child2}importimportReact,{Component}from//2.扩展表单的高阶组件,提供输入控件包装 functionkFormCreate(Comp)returnclass {constructor(props){this.optionsthis.state}handleChange=e=>let{name,value}=e.target;this.setState({[name]:value},()=>{//校验://validateField=field=>construles=this.options[field].rules;////只要有任何一项校验失败就返回trueconstret=!rules.some(rule=>if(rule.required)////[field+"Message"]:returntrue;//若有校验失败,返回}}//if(ret)this.setState({[field+"Message"]:""});returnret;//validate=cb=>//将选项中所有fieldconstrets=Object.keys(this.options).map(field{return//校验结果中每一项都要求constret=rets.every(v=>v==true);cb(ret,this.state);//返回包装输入控件的高阶组件 //field字段名,options选项, getFieldDec=(field,option)=>{this.options[field]=option; p=>({/*由React.createElement生成的元素不能修改,需要克隆一份再扩展 name:field,控件onChange:this.handleChange//控件 {this.state[field+"Message"]&&{return(}}classKFormTestextends{onSubmit=()=>{if(isValid)console.log("提交登录",}else}render()//const{getFieldDec}=ps;return({getFieldDec("uname",})(<inputtype="text"{getFieldDec("
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村土地买卖合同范本
- 农村建筑施工合同范本
- 买卖冬虫夏草合同范本
- 勘界测绘合同范例
- 再婚买房合同范本
- 个体简易合同范本
- 包工安装护栏合同范本
- 单位销售岗位劳动合同范本
- 俱乐部装修合同范本
- 养殖合作建设合同范本
- 通信施工安全培训
- 智慧生活:AI与智能家居-揭秘未来智能化生活趋势
- 大单元教学设计基本步骤
- 消渴症护理查房
- 二手中型、重型载货车鉴定评估技术规范
- DB11T 2120-2023 古建筑安全防范技术规范
- 工业自动化控制系统设计与实施规范
- 2023年银行安全保卫考试真题模拟汇编(共392题)
- 2024版2024年.旋转课件 公开课一等奖课件
- DB34T 4627-2023 人民防空工程防护质量检测技术规程
- 2024年农商银行笔试真题
评论
0/150
提交评论