【发布时间】:2022-01-21 22:07:54
【问题描述】:
我正在使用带有 react-hook-form 的 Material UI 的自动完成输入,如下所示:
import React from "react";
import {Controller} from "react-hook-form";
import {Autocomplete} from "@mui/material";
export const ControlledAutocomplete = ({
options,
renderInput,
getOptionLabel,
onChange: ignored,
control,
defaultValue,
name,
renderOption,
viewOnly
}) => {
return (
<Controller
defaultValue={defaultValue}
render={({field: {onChange, ...props}, fieldState: {error}}) => (
<Autocomplete
options={options || []}
getOptionLabel={getOptionLabel}
isOptionEqualToValue={(option, value) => {
if (typeof (value) === 'object') {
return option.id === value.id
} else {
return option.id === value
}
}}
renderOption={renderOption}
disabled={viewOnly}
autoComplete={true}
renderInput={renderInput}
onChange={(e, data) => onChange(data)}
{...props}
/>
)}
control={control}
name={name}
/>
);
}
这很好用,但如果没有可用的建议,我想获得用户输入。基本上,如果自动完成列表中没有任何建议,我想从用户那里获取原始输入。 自动完成或 MUI 中的任何其他输入字段是否有可能?
【问题讨论】:
标签: javascript reactjs material-ui react-hook-form