前言
这是我在学习redux的文档记得笔记,没有教程意义。
简单的例子
| 1 | //simpleform.jsx | 
- 主要方法在reduxForm 里,其会注入很多方法,包括handleSubmit。
renderField Factory
可以使用一个函数方便的生成div+label+input
| 1 | class renderField extends Component { | 
这里可以看到 input props 会包含在Field 设置的name value 等props。meta则是reduxForm注入的。
验证
- 验证规则默认是blur时候触发
- 可以写在reduxForm()方法中
| 1 | const validate=(value)=>{ | 
- 也可以直接写在“行内”
| 1 | const needEnglish=(value)=>{ | 
- 写在submit中,在onSubmit中判断
异步验证
在 reduxForm({}) 声明 asyncValidate 函数,以及声明asyncBlurFields为要在blur
时候触发异步验证的field
| 1 |  | 
** 这里asyncValidate函数返回的必须是一个 Promise对象
初始化表单
reduxForm 会给 form 注入一个 initialvalues props,可以用connect对应到redux中的state
来实现初始化数据
| 1 | function mapStateToProps(state){ | 
上面代码中 loadAction是一个action
Remote Submit 提交按钮独立出来
| 1 | import {submit} form 'redux-form'; | 
props
- submitting- 是够正在提交阶段(submit验证)
 
reduxForm
- asyncBlurFields
- asyncValidate
- destoryOnUnmount
- enableReinitialize- boolean 默认值的 false 当为true时候,每次initialValues props变化时候,form都会重新初始化,但是不能初始化 keepDirtyOnreinitialize设置的项
 
- forceUnregisterOnUnmount
 *
- getFormState
 *
- keppDirtyOnReinitialize- 与enabeReinitialize对应
 
- initialValues- 初始值,是个对象,可以用react-redux和store中state对应起来
 
- onSubmit- 当不存在handleSubmit时候替代用
 
- onSubmitFail- 当submission失败时候触发
 
- onSubmitSuccess
- propNamespace
- pure- 不懂
 
- shouldValidate- 控制是否进行同步验证,会传入一个参数,有以下属性- values nextProps props initialRender
- 需要返回true或者false控制是否进行验证
 
 
- 控制是否进行同步验证,会传入一个参数,有以下属性
- shouldAsyncValidate- 控制是否进行一步验证,传入的参数不同
 
- touchOnBlur- boolean[true] 设置 fields touched 如果 没有blur事件
 
- touchOnChange- 同上 default为false
 
- persistentSubmitErrors- boolean[false] 当change事件不存在时候不会移除submit errors
 
- validate
- warn
实例API
是reduxForm指传入到组件中的props
dirty:boolean
当前值不和初始值(initialValues)相同时候为true
invalid:boolean
存在validation errors 即 true
pristine
和dirty对应
registeredFields:array
一个数组储存着所有field的name和type信息的
reset:function
重置表单到 initialValues
submit:promise
valid:boolean
和 invalid对应
values
当前所有的field values