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

redux-form的学习笔记二--实现表单的同步验证

实现一个同步验证的表单,它将满足以下条件: 1有三个输入框:用户名输入框(username),邮箱输入框(email)和年龄输入框(age) 2如果点击输入框获取焦点后未输入内容,则在输入框失去焦点后发出错误...,则提示警告(warn)内容,此时虽然发出警告但仍能提交成功(请区分和2和3中的区别) 5在尚未输入内容时(pristine=true)或在提交过程中(submitting=true),禁止使用提交按钮.../api/Props.md/ handleSubmit是处理提交的一个函数,接收三个参数:values(即上文提到的保存表单数据的对象),dispatch和props(传递给自定义表单组件的属性) pristine...是一个布尔型的值,如果表单初始化后尚未输入值,为true,否则为false,当你向表单中第一个输入框中输入值的时候,pristine就由true转为false了 reset是一个函数,调用reset()...可清空表单 submitting是一个布尔型数值,true表示表单正在提交  运行结果如下: 1--验证是否为空 ?

1.8K50

React 16.x折腾记 - (6) 基于React 16.x+ Antd 3.x封装的一个声明式的查询组件(实用强大)

Input控件的时候,去除卡片效果 抽离思路及实现 思路 合并props传递的值,尽可能的减少传递的东西(在组件内部实现默认值合并),把渲染的子组件通过遍历json去实现; 整个查询区域用的antd表单组件...,聚合所有表单数据(自动双向绑定,设置默认值等); 为了降低复杂度,子组件不考虑dva来维护状态,纯靠props和state构建,然后统一把构建的表单数据向父级暴露.....,Cascader,Radio 允许传递的props有四个个,部分props有默认值,传递的会合并进去 字段 类型 解释 data 数组对象[obj] 数据源(构建) accumulate 字符串 超过多少个折叠起来...resetSearchForm 函数 回调函数,当重置表单数据的时候 autoSearch 布尔值 启动非input的控件自动触发提交的props函数 数据源格式 data的数据格式基本和antd要求的格式一致...,且props有传递的情况下,才返回表单数据 if (!

16110
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    React 折腾记 - (6) 基于React 16.6 + Antd 3.10.7封装的一个声明式的查询组件

    ---- 抽离思路及实现 思路 合并props传递的值,尽可能的减少传递的东西(在组件内部实现默认值合并),把渲染的子组件通过遍历json去实现; 整个查询区域用的antd表单组件,聚合所有表单数据(自动双向绑定...,设置默认值等); 为了降低复杂度,子组件不考虑dva来维护状态,纯靠props和state构建,然后统一把构建的表单数据向父级暴露.....,Cascader,Radio 允许传递的props有三个,所有props均有默认值,传递的会合并进去 data: 数据源(构建) accumulate: 超过多少个折叠起来 responseLayout...:传递对象,响应式 getSearchFormData: 回调函数,拿到表单的数据 <AdvancedSearchForm data={searchItem} getSearchFormData=...// 返回合并后的数据,比如mode,渲染的数据这些 return { factoryData: newData }; } return null; } // 提交表单

    2.6K10

    React进阶(3)-上手实践Redux-如何改变store中的数据

    初始化state值,将原先组件内部的状态的数据,移除到reducer里面去管理 function reducer(state = {     inputValue: 'itclanCoder',     ...console.log(e.target.value);         // 定义action,确定一个操作,动作,注意action必须遵循一定的规范,是一个对象,type字段是确定要做的动作,类型,监听表单输入框的变化...初始化state值,将原先组件内部的状态的数据,移除到reducer里面去管理 function reducer(state = {     inputValue: '',     list: [] }...newState.inputValue = ''; // 提交表单内容后,让表单内容置空操作             return newState; // 返回newState         }         ...初始化state值,将原先组件内部的状态的数据,移除到reducer里面去管理 function reducer(state = {     inputValue: '',     list: [] }

    2.6K30

    React进阶(3)-上手实践Redux-如何改变store中的数据

    初始化state值,将原先组件内部的状态的数据,移除到reducer里面去管理 function reducer(state = { inputValue: 'itclanCoder',...console.log(e.target.value); // 定义action,确定一个操作,动作,注意action必须遵循一定的规范,是一个对象,type字段是确定要做的动作,类型,监听表单输入框的变化...初始化state值,将原先组件内部的状态的数据,移除到reducer里面去管理 function reducer(state = { inputValue: '', list: [] }...newState.inputValue = ''; // 提交表单内容后,让表单内容置空操作 return newState; // 返回newState }...初始化state值,将原先组件内部的状态的数据,移除到reducer里面去管理 function reducer(state = { inputValue: '', list: [] }

    2.2K20

    Taro 小程序开发大型实战(五):使用 Hooks 版的 Redux 实现应用状态管理(下篇)

    接着,我们将之前提交表单需要调用的父组件方法 props.handleSubmit 移动到组件内部来定义,可以看到,这个 hanldeSubmit 组合了之前在 src/components/Footer...我们一路打怪重构到这里,相比眼尖的人已经摸清楚 Redux 的套路了,结合 Redux 来写 React 代码,就好比 “千里之堤,始于垒土” 一般,我们先把所有细小的分支组件搞定,进而一步一步向顶层组件进发...最后,我们将之前提交表单需要调用的父组件方法 props.handleSubmit 移动到组件内部来定义,可以看到,这个 hanldeSubmit 和我们之前定义在 src/pages/index/index.js...注意 这里的 console.log 是调试时使用的,生产环境中建议删掉。 查看效果 可以看到,在未登录状态下,会提示请登录: 在已登录的情况下,发帖子会显示当前登录用户的头像和昵称: 小结 有幸!...到这里,我们 Redux 重构之旅的万里长征就跑完了!让我们来回顾一下我们在这一小节中学到了那些东西。

    2K30

    年度实用技巧 | 越折腾越有趣,封装了一个表单组件

    所以我根据日常开发经验,将常规的表单项做了进一步的封装处理。封装处理之后,只需将表单项类型、key值等关键变量放到一个数组对象中,通过props传递到表单组件中即可。...参数介绍参数说明类型默认值data表单默认数据object{}list表单项展示数组any[][]layout表单布局object-callback提交操作的回调函数(value,list) => voidgetFormRef...有一种特殊情况,当下拉项选择其他时,需要输入其他选项的具体值,所以增加了可输入其他的文本域功能。...当文本域类型表单项和其他表单项组合展示时,展示的布局值需要和组合的表单项一致,所以根据type类型做了特殊处理。...list,这个是重点,它是一个数组对象,放完整的表单数据,所有需要展示的表单项都要放到list数组中,callback,是一个回调函数,提交表单时,需要请求后端提供的接口进行数据上报。

    15320

    React进阶(2)-上手实践Redux-如何获取store的数据

    的组合,代码就是文字描述的最佳的体现,解释 你将在本文学习到 编写Redux的的基本流程 如何获取store中公共的数据,并展示到页面上 如何更改store的公共数据,实现组件的数据与store的同步更新...例子对于入门redux是一个非常好的实践,这就好比刚写程序时的Hello-world,虽然麻雀虽小,但是五胀俱全 在React中要使用Redux时,必须先要在命令行终端下进行安装 使用npm或者cnpm...{     super(props);     // 组件内部的初始化状态数据     this.state = {       inputValue: 'itclanCoder', // input表单初始值...初始化state值,将原先组件内部的状态的数据,移除到reducer里面去管理 function reducer(state = {     inputValue: 'itclanCoder',     ...进而store就获取到了reducer函数里面的组件公共存储的数据,当组件外部想要拿store的公共数据时 于是引入store,并通过getState这个函数就可以获取store中的所有数据,最终可将数据渲染到页面上

    2.3K20

    前端架构师之01_JQuery

    行到水穷处,坐看云起时。...(select、radio和checkbox)的选中情况,当要获取的元素是元素时,返回结果是一个包含所选值的数组;当要为表单元素设置选中情况时,可以传递数组参数。...([[data],function]) 当元素的值发生改变时触发 表单事件 focusin([data],function) 在父元素上检测子元素获取焦点的情况 表单事件 focusout([data]...submit([[data],function]) 当表单提交时触发 键盘事件 keydown([[data],function]) 键盘按键被按下时触发 键盘事件 keypress([[data],...() 通过序列化表单值,创建对象数组(名称和值) Ajax事件 ajaxComplete(fn) Ajax请求完成时触发的事件执行函数 Ajax事件 ajaxError(fn) Ajax请求发生错误时触发的事件执行函数

    6800

    React 组件优化

    组件比较复杂,在构建 Formik 表单程序时,Formik 和下面它的几个属性是需要设置的: initialValues 接收一个对象,表示初始化的表单控件的值,对象的键应是表单的...name 值; 的 children 部分可以是一个函数,这个函数可以接收到 的 porps; 对 form 表单的小小封装,时才触发 validateOnBlur={false} // 提交时就打印出各个字段(action...在 Formik 官网,作者也举例了使用 redux-form 的缺陷: 表单状态本质上是短暂的和局部的,并不需要 redux 对其进行跟踪; 使用 redux 管理状态时,状态更新要派发 action...,这对于小型应用程序来说很好,但是随着 Redux 应用程序的增长,使用 Redux-Form,则输入延迟将继续增加。

    7.2K20

    2021前端react面试题汇总

    setState方法更新state,就会触发视图的重新渲染,完成表单组件的更新 受控组件缺陷: 表单元素的值都是由React组件进行管理,当有多个输入框,或者多个这种组件时,如果想同时获取到全部的值就必须每个都要编写事件处理函数...(2)非受控组件 如果一个表单组件没有value props(单选和复选按钮对应的是checked props)时,就可以称为非受控组件。在非受控组件中,可以使用一个ref来从DOM获得表单值。...DOM如果是现用现取的称为非受控组件,而通过setState将输入的值维护到了state中,需要时再从state中取出,这里的数据就受到了state的控制,称为受控组件。...当 ref 属性被用于一个自定义的类组件时,ref 对象将接收该组件已挂载的实例作为他的 current。 当在父组件中需要访问子组件中的 ref 时可使用传递 Refs 或回调 Refs。 9....构造函数主要用于两个目的: 通过将对象分配给this.state来初始化本地状态 将事件处理程序方法绑定到实例上 所以,当在React class中需要设置state的初始值或者绑定事件时,需要加上构造函数

    2.3K00

    React进阶(2)-上手实践Redux-如何获取store的数据

    +Flux的组合,代码就是文字描述的最佳的体现,解释 你将在本文学习到 编写Redux的的基本流程 如何获取store中公共的数据,并展示到页面上 如何更改store的公共数据,实现组件的数据与store...Hello-world,虽然麻雀虽小,但是五胀俱全 在React中要使用Redux时,必须先要在命令行终端下进行安装 使用npm或者cnpm,yarn(使用yarn时,需要先安装它,然后才可以使用)进行安装...{ super(props); // 组件内部的初始化状态数据 this.state = { inputValue: 'itclanCoder', // input表单初始值...初始化state值,将原先组件内部的状态的数据,移除到reducer里面去管理 function reducer(state = { inputValue: 'itclanCoder',...进而store就获取到了reducer函数里面的组件公共存储的数据,当组件外部想要拿store的公共数据时 于是引入store,并通过getState这个函数就可以获取store中的所有数据,最终可将数据渲染到页面上

    1.6K10

    2021前端react面试题汇总

    setState方法更新state,就会触发视图的重新渲染,完成表单组件的更新 受控组件缺陷: 表单元素的值都是由React组件进行管理,当有多个输入框,或者多个这种组件时,如果想同时获取到全部的值就必须每个都要编写事件处理函数...(2)非受控组件 如果一个表单组件没有value props(单选和复选按钮对应的是checked props)时,就可以称为非受控组件。在非受控组件中,可以使用一个ref来从DOM获得表单值。...DOM如果是现用现取的称为非受控组件,而通过setState将输入的值维护到了state中,需要时再从state中取出,这里的数据就受到了state的控制,称为受控组件。...当 ref 属性被用于一个自定义的类组件时,ref 对象将接收该组件已挂载的实例作为他的 current。 当在父组件中需要访问子组件中的 ref 时可使用传递 Refs 或回调 Refs。 9....构造函数主要用于两个目的: 通过将对象分配给this.state来初始化本地状态 将事件处理程序方法绑定到实例上 所以,当在React class中需要设置state的初始值或者绑定事件时,需要加上构造函数

    2K20

    2022前端社招React面试题 附答案

    setState方法更新state,就会触发视图的重新渲染,完成表单组件的更新 受控组件缺陷: 表单元素的值都是由React组件进行管理,当有多个输入框,或者多个这种组件时,如果想同时获取到全部的值就必须每个都要编写事件处理函数...(2)非受控组件 如果一个表单组件没有value props(单选和复选按钮对应的是checked props)时,就可以称为非受控组件。在非受控组件中,可以使用一个ref来从DOM获得表单值。...DOM如果是现用现取的称为非受控组件,而通过setState将输入的值维护到了state中,需要时再从state中取出,这里的数据就受到了state的控制,称为受控组件。...当在父组件中需要访问子组件中的 ref 时可使用传递 Refs 或回调 Refs。 9. React组件的构造函数有什么作用?它是必须的吗?...构造函数主要用于两个目的: 通过将对象分配给this.state来初始化本地状态 将事件处理程序方法绑定到实例上 所以,当在React class中需要设置state的初始值或者绑定事件时,需要加上构造函数

    1.7K40

    带你用React从零实现一个Antd4 Form表单

    其实Form表单就做了以下几件事情: 数据收集 数跨传递 数据响应式 表单校验 表单提交 数据收集 在一个Form表单里,有很多input、radio等数据项,而这些input、radio要做成受控组件就需要把他们各自的...但是我们需要考虑的一点就是,如果这些input、radio组件等都各自管理自己的state,那么Form表单提交的时候,怎么做统一的收据收集呢,毕竟校验和提交Form表单的时候需要获取Form表单中全部的数据...还有一种统一管理Form中状态值的方式,就是自己再定义一个单独的数据管理仓库,然后规定这个数据仓库的get、set方法就好了,有点类似redux。...考虑到Form组件、input、radio组件、button组件等都要访问数据仓库,并且他们有个共同特点就是,都是Form的子组件但并不确定是Form的第几代子孙组件,那这个时候使用props数据传递显然是不合适的...perfect~ 表单校验 到现在为止,我们还没有提交表单,提交前我们首先要做表单校验。表单校验通过,则执行onFinish,失败则执行onFinishFailed。

    1.4K20

    TDesign 更新周报(2022年5月第3周)

    组件库 Vue2 for Web 发布 0.41.5 Features Form:支持 help 配置的表单项说明内容与错误提示同时展示,未配置 help 时不再默认占位 Table: 树形结构,...TreeSelect:修复未支持 treeProps.keys.children 字段配置的问题 Menu:修复 expandType=popup 时箭头方向展示错误的问题 Menu:修复 width...,未配置 help 时不再默认占位 Table:树形结构,支持默认展开全部,tree.defaultExpandAll Table:树形结构,支持自由控制展开全部,或收起全部 expandAll().../Tencent/tdesign-vue-next/releases/tag/0.15.0 React for Web 发布 0.34.0 ❗ Breaking Changes DatePicker:...性能优化,减少隐藏元素,使用更流畅 Table:重构表格嵌套关系 Input:重构输入框嵌套关系 Menu:重构导航菜单嵌套关系 Dropdown:重构下拉菜单嵌套关系 2.

    2.8K30

    React面试八股文(第一期)

    受控组件更新state的流程:可以通过初始state中设置表单的默认值每当表单的值发生变化时,调用onChange事件处理器事件处理器通过事件对象e拿到改变后的状态,并更新组件的state一旦通过setState...方法更新state,就会触发视图的重新渲染,完成表单组件的更新受控组件缺陷: 表单元素的值都是由React组件进行管理,当有多个输入框,或者多个这种组件时,如果想同时获取到全部的值就必须每个都要编写事件处理函数...(2)非受控组件 如果一个表单组件没有value props(单选和复选按钮对应的是checked props)时,就可以称为非受控组件。在非受控组件中,可以使用一个ref来从DOM获得表单值。...DOM如果是现用现取的称为非受控组件,而通过setState将输入的值维护到了state中,需要时再从state中取出,这里的数据就受到了state的控制,称为受控组件。...对于某些属性,React 非常聪明,如果传递给它的值是虚值,可以省略该属性。

    3.1K30

    redux-saga_pub culture

    本文用以记录从调研Redux Saga,到应用到项目中的一些收获。...刚开始了解Saga时,看官方解释,并不是很清楚到底是什么?Saga的副作用(side effects)到底是什么?...下面是一个简单的例子: 在用户提交表单的时候,我们想要做如下事情: 校验一些输入信息 (简单, 写在组件里) 弹起提示信息(聪明的我,一定要写一个公用的提示信息模块,这样别的页面引入就可以用了, 呵呵呵呵...用了redux-saga之后: form组件触发提交action (一行简单的dispatch) reducer这个action不需要我处理 (打酱油了) saga提交表单的副作用走起~ (监听到触发副作用的...action) 校验一下 通知显示层弹起信息框 (dispatch一下变更控制信息框弹起的store) 提交表单 (yield一个promis,yield是javascript generator

    1.4K10
    领券