@include 'common'

## 基本

getValue setValue reset 的使用
@include 'demo1'

## 关联控制

组件之间的关联控制. onChange 统一管理。
@include 'demo2'

## 自定义返回值

当组件返回的数据和最终期望提交的格式不一致的时候，可以使用 getValueFormatter 和 setValueFormatter 两个函数做转换。

比如 switch 组件期望上报 0/1, date-picker 组件期望上报 YYYY-MM-DD 这种字符串格式
@include 'demo3'

## 自定义错误

自己控制组件的 errors
@include 'demo4'

## 校验 promise

使用 Promise 的方式作为校验返回
@include 'demo5'

## 校验

校验的错误信息需要用 getError 获取

注意：Form 和 Field 做了深度结合，在 Form 中使用 Field，错误信息不需 getError 获取会自动展现。

请参考 validatorPromise demo，以使用 Promise 而不是回调
@include 'demo6'

## redux 中使用

在 redux 中使用, 在 componentWillReceiveProps 更新
@include 'demo7'

## 动态表格

通过 deleteArrayValue/addArrayValue 可以往数组格式的数据里面 删除/添加 数据, 并且自动订正其他 name 的 偏移问题
@include 'demo8'

## 自动卸载

autoUnmount 默认为 true，当组件被 unmount 的时候会自动删除数据. autoUnmount 设置为 false 后，会一直保存数据.
@include 'demo9'

## 组合使用

多组件混合使用
@include 'demo10'

## 自定义受控字段

valueName 的默认值为 value，如果为其他需要用 valueName 指定
@include 'demo11'

## 自定义组件

自己的组件如何接入 Field。

最低标准: 组件支持 onChange 读取组件数据。达到效果：Field 可以 getValue，但是 setValue 无效

完全支持: 组件支持受控， 也就是支持两个 api：value onChange. value: 设置组件的数据; onChange: 在组件修改的时候在第一个数暴露数据

@include 'demo12'

## 结构化解析

把 init('obj.b') 的数据转换成 obj={obj:{b:'value'}}；

把 init('arr.0') 的数据转换成 obj={arr:['']}；
@include 'demo13'

## Hooks

在 functional component 里可使用 Field.useField 支持 hooks. 依赖: react@^16.8
@include 'demo14'
