React Flexible FormDocsExamplesGitHub
DocumentationOverviewGetting StartedTypeScriptAPIuseFormFielduseSubformuseFieldArrayuseConvertutilsExamplesSimple FormChakra UI FormForm with ArraySubformCustom useConvertForm State in ReduxForm with LoaderForm based on Material UIThrottled error validation

useConvert hook

This hook is used to convert form's control data (values, errors, callbacks) to format accpetable by the Component passed as rffComponent prop. It can provide any props that are required by rffComponent. But most of the time it provide form related props like value, onChange, onBlur and error. And as these props may have differen names (i.e. isInvalid in place of error) or differen signatures, this hook can create correct props. This hook is part of <Field /> customization and can be custom. Default implementation is here. Hook should be passed to <Field /> component as optional rffUseConvert prop.

  <Field
    rffUseConvert={useConvert}
    // ...
  />

For example, to be able to pass React Select as rffComponent useConvert code can be

const useReactSelectConvert: ConvertHook<
  any,
  Pick<
    ReactSelectProps<unknown, false, GroupBase<unknown>>,
    "value" | "onChange"
  >
> = ({ formControl: { values, setFieldValue }, rffName }) => {
  const value = getIn<any>({ name: rffName, values });
  const onChange = useCallback<
    NonNullable<
      ReactSelectProps<unknown, false, GroupBase<unknown>>["onChange"]
    >
  >(
    (value) => {
      setFieldValue<any>(rffName, value);
    },
    [rffName, setFieldValue],
  );

  return {
    value,
    onChange,
  };
};