Skip to main content
Version: v2

RHFNativeSelect

RHFNativeSelect extends NativeSelect and is ideal for mobile-friendly form designs. Similar to RHFSelect, it supports both arrays and arrays of objects for flexible option rendering.

Usage

import RHFNativeSelect, { RHFNativeSelectProps } from '@nish1896/rhf-mui-components/mui/native-select';

Here’s a basic example with an array of strings:

<RHFNativeSelect
fieldName="color"
control={control}
options={['Red', 'Blue', 'Orange']}
errorMessage={errors?.color?.message}
/>

And with an array of objects:

<RHFNativeSelect
fieldName="country"
control={control}
options={[
{ code: 'AUS', country: 'Australia' },
{ code: 'IN', country: 'India' },
{ code: 'UAE', country: 'United Arab Emirates' },
]}
labelKey="country"
valueKey="code"
errorMessage={errors?.country?.message}
/>
warning

When using an array of objects for options, both labelKey and valueKey are required. If either is missing, an error will be thrown.

Examples

API

The RHFNativeSelectProps interface extends NativeSelectProps and accepts the following additional props:

NameTypeRequiredDescription
fieldNamestringReact Hook Form requires name as a key for the registration process. This is a required prop for all components.
controlUseFormControlThe control option yielded on calling the useForm hook.
registerOptionsRegisterOptionsRegister options for validation if using react-hook-form without any validation libraries like yup or Joi.
optionsstring[] or number[] or object[]An array with string, numeric or object values. Make sure to pass labelKey and valueKey when options is an array of objects.
labelKeystringThe key of object in options array, whose value would be shown as the label in the formfield. Only required when input options is an array of objects.
valueKeystringThe key of object in options array, whose value would be actual value of the option selected in the formfield. Only required when input options is an array of objects.
onValueChange(newValue, event) => voidAn optional callback function when an option is selected. The latest value can be obtained from newValue argument.
defaultOptionTextstringCustom text to replace the default text when showDefaultOption is true for RHFSelect or RHFNativeSelect.
labelReactNodeThe text to render in FormLabel component. By default, the value of fieldName such as firstName will be transformed to display "First Name" using the fieldNameToLabel function.
showLabelAboveFormFieldbooleanRenders the form label above the field by default. Set this prop to false to hide the label.
formLabelPropsFormLabelPropsFormLabelProps to customise FormLabel component for a field. Multiple fields can be configured using the ConfigProvider component.
helperTextReactNodeThe content to display within the FormHelperText component below the field. If the field validation fails, this content will be overridden by the corresponding error message.
errorMessageReactNodeError message to be shown for a field in FormHelperText component.
hideErrorMessagebooleanA flag to prevent replacement of helper text of a field by the error message when the validation is triggered.
formHelperTextPropsFormHelperTextPropsFormHelperTextProps to customise FormHelperText component for a field. Multiple fields can be configured using the ConfigProvider component.