React-hoof-form material-ui раскрывающийся список В поле отсутствует атрибут name:
const roles = [
{ value: "STAFF", label: "Staff" },
{ value: "ADMIN", label: "Administrator" },
{ value: "MANAG", label: "Manager" },
{ value: "SUPER", label: "Supervisor" },
{ value: "OTHER", label: "Other" }
]
<Controller as={<TextField />} className={classes.textField} select label="Select Role"
name="role" variant="outlined" required control={control} fullWidth inputRef={register({
required: true })}>
{roles.map(role => (
<MenuItem key={role.value} value={role.value}>
{role.label}
</MenuItem>
))}
name="role"
</Controller>
Я получаю значение раскрывающегося меню {узел: ввод, значение: "УПРАВЛЕНИЕ", фокус: Æ '} ОШИБКА: поле отсутствует name
attribute: ОТСУТСТВУЕТ ИМЯ АТРИБУТА "роль" Как мне назначить имя атрибута роли?
2 ответа
Взгляните на документ:https://react-hook-form.com/api
Controller
заботится о процессе регистрации, поэтому вам не нужно register
снова на входном уровне.
<Controller
control={control}
name="test"
render={({ onChange, onBlur, value }) => (
<Checkbox
onBlur={onBlur}
onChange={e => onChange(e.target.checked)}
checked={value}
/>
)}
/>
<Controller render={props => <Input {...props} />} />
Вы можете попробовать установить
inputRef={ref}
.
Controller
с
render
обеспечивает
ref
атрибут.
<Controller
name={'gender'}
control={control}
render={({ onChange, value, ref }) => {
return (
<Select
inputRef={ref}
label="Gender"
defaultValue=""
value={value}
onChange={(event) => onChange(event.target.value)}
>
<MenuItem value="" />
<MenuItem value="male">Male</MenuItem>
<MenuItem value="female">Female</MenuItem>
<MenuItem value="other">Other</MenuItem>
</Select>
);
}}
/>