跳到主要内容

dispatch

dispatchdrip form 内部更改表单状态的api。

可以用来设置表单数据、表单ui展示、表单校验配置、自定义错误信息等。

前几章节的getsetmerge

设置自定义错误

// 设置自定义错误信息
type SetErrAction = {
type: 'setErr'
action: {
// 需要删除错误的表单的fieldKey
deleteKeys?: Array<string> | string
// 设置所有表单的错误信息
errors?: Record<string, string>
// 设置具体某个表单的错误信息
set?: Record<string, string>
}
}

详细查看自定义校验章节

设置表单数据

如果可以使用set,则优先使用set语法糖。
type SetDataAction = {
type: 'setData'
action: {
deleteKeys?: string | Array<string>
formData?: Map
set?: Map
}
}

代码沙盒:Open in StackBlitz

更改表单ui

如果可以使用set,则优先使用set语法糖。
type SetUiAction = {
type: 'setUi'
action: {
deleteKeys?: Array<string> | string
uiSchema?: UiSchema
set?: Map
}
}
getKey的使用

不同于set可以直接设置表单ui,使用dispatch需要知道表单在uiSchema中的具体位置。

通过getKey可以获取表单相对uiSchema、dataSchema的位置。

代码沙盒:Open in StackBlitz

更改表单校验

如果可以使用set,则优先使用set语法糖。
type SetValidate = {
type: 'setValidate'
action: {
deleteKeys?: Array<string> | string
dataSchema?: DataSchema
set?: Map
}
}

代码沙盒:Open in StackBlitz