You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.8 KiB
47 lines
1.8 KiB
2 years ago
|
/// <reference types="react" />
|
||
|
import { ControllerProps, FieldValues } from './types';
|
||
|
/**
|
||
|
* Component based on `useController` hook to work with controlled component.
|
||
|
*
|
||
|
* @remarks
|
||
|
* [API](https://react-hook-form.com/api/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)
|
||
|
*
|
||
|
* @param props - the path name to the form field value, and validation rules.
|
||
|
*
|
||
|
* @returns provide field handler functions, field and form state.
|
||
|
*
|
||
|
* @example
|
||
|
* ```tsx
|
||
|
* function App() {
|
||
|
* const { control } = useForm<FormValues>({
|
||
|
* defaultValues: {
|
||
|
* test: ""
|
||
|
* }
|
||
|
* });
|
||
|
*
|
||
|
* return (
|
||
|
* <form>
|
||
|
* <Controller
|
||
|
* control={control}
|
||
|
* name="test"
|
||
|
* render={({ field: { onChange, onBlur, value, ref }, formState, fieldState }) => (
|
||
|
* <>
|
||
|
* <input
|
||
|
* onChange={onChange} // send value to hook form
|
||
|
* onBlur={onBlur} // notify when input is touched
|
||
|
* value={value} // return updated value
|
||
|
* ref={ref} // set ref for focus management
|
||
|
* />
|
||
|
* <p>{formState.isSubmitted ? "submitted" : ""}</p>
|
||
|
* <p>{fieldState.isTouched ? "touched" : ""}</p>
|
||
|
* </>
|
||
|
* )}
|
||
|
* />
|
||
|
* </form>
|
||
|
* );
|
||
|
* }
|
||
|
* ```
|
||
|
*/
|
||
|
declare const Controller: <TFieldValues extends FieldValues = FieldValues, TName extends import("./types").Path<TFieldValues> = import("./types").Path<TFieldValues>>(props: ControllerProps<TFieldValues, TName>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
||
|
export { Controller };
|
||
|
//# sourceMappingURL=controller.d.ts.map
|