Skip to content

useFormLayoutContext

在自定义表单项(type 指定的组件)、插槽或 content 中,获取外层 DataForm 的上下文,包括表单实例方法、数据模型和配置。

ts
import { useFormLayoutContext } from 'yoyoo-ui'

使用场景

1. 自定义表单项中调用表单方法

ts
import { useFormLayoutContext } from 'yoyoo-ui'

// 在自定义组件 setup 中
const { form, model, props } = useFormLayoutContext()

// 触发表单校验
form.validate()

// 重置表单
form.resetFields()

// 滚动到指定字段
form.scrollToField('username')

2. 读取或监听表单数据

ts
const { model } = useFormLayoutContext()

// model 是响应式的,可 watch 数据变化
watch(() => model.value.name, (val) => {
  console.log('姓名变化:', val)
})

3. 读取表单配置

ts
const { props } = useFormLayoutContext()

// 获取表单的 labelWidth、labelPosition 等配置
console.log(props.labelWidth)
console.log(props.labelPosition)  // 'top' | 'left'

返回值

FormContext 对象包含以下属性:

属性类型说明
formFormLayoutExpose表单实例,含 validate / resetFields / clearValidate / scrollToField 方法
modelRef<Record<string, any>>表单数据源(响应式),可直接读写
propsFormProps表单配置项(labelWidthlabelPositiontextMode 等)
addHook(name: HookType, fn: () => void) => void注册表单生命周期钩子