表单相关
useFromContext
对于每个CForm
表单组件,都具有一个CFormContext
,该上下文可以通过useFormContext
方法获取。
const formContext: CFormContextProps = useFormContext()
interface CFormContextProps {
col?: number
labelWidth?: string
labelDirection?: 'row' | 'row-reverse' | 'column' | 'column-reverse'
labelAlign?: 'left' | 'right' | 'center'
addValidator?: (field: string, newValidator: Validator[]) => void
validateAll?: () => Promise<void> | void
clearAll?: () => void
validateField?: (field: string, value: any) => void | Promise<void>
clearField?: (field: string) => void
errors?: Errors
}
interface Validators {
[key: string]: Validator[]
}
interface Errors {
[key: string]: string | false
}
type Validator = (value: any) => string | false | Promise<string | false>
更多使用方式可以查看:CFormItem.tsx源码
useFormItemContext
对于每个CFormItem
表单项组件,都具有一个CFormItemContext
,该上下文可以通过useFormItemContext
方法获取。
const formItemContext: CFormItemContextProps = useFormItemContext()
interface CFormItemContextProps {
clearCurrent?: () => void
validateCurrent?: (v: any) => void
hasError?: false | string
}
更多使用方式可以参考CInput.tsx源码