feat: support FormMessage to be used under root Form

add-signin-page
Meng Zhang 2023-12-05 22:41:34 +08:00
parent f750b3e970
commit 4357d9b552
1 changed files with 5 additions and 4 deletions

View File

@ -43,18 +43,19 @@ const useFormField = () => {
const fieldContext = React.useContext(FormFieldContext) const fieldContext = React.useContext(FormFieldContext)
const itemContext = React.useContext(FormItemContext) const itemContext = React.useContext(FormItemContext)
const { getFieldState, formState } = useFormContext() const { getFieldState, formState } = useFormContext()
const name = fieldContext.name || "root";
const fieldState = getFieldState(fieldContext.name, formState) const fieldState = getFieldState(name, formState)
if (!fieldContext) { if (!formState) {
throw new Error("useFormField should be used within <FormField>") throw new Error("useFormField should be used within <Form>")
} }
const { id } = itemContext const { id } = itemContext
return { return {
id, id,
name: fieldContext.name, name,
formItemId: `${id}-form-item`, formItemId: `${id}-form-item`,
formDescriptionId: `${id}-form-item-description`, formDescriptionId: `${id}-form-item-description`,
formMessageId: `${id}-form-item-message`, formMessageId: `${id}-form-item-message`,