Вы можете использовать свойство ref
в компоненте Select
, чтобы получить ссылку на экземпляр этого компонента.
Затем вы можете вызвать метод blur
этого экземпляра.
const SelectField: GenericSelectField<SelectValue> = ({label = "",...rest}) => {
const selectEl = React.useRef(null);
// this function could be a callback
function handleBlur() {
selectEl.current.blur();
}
return (
<div className="react-select-wrapper">
{label ? <span className="input__label">{label}</span> : null}
<Select ref={selectEl} classNamePrefix="react-select" {...rest} />
</div>
);
}
export default SelectField;
Если вам нужен доступ к методу blur
вне компонента SelectField
, вы можете использовать forwardRef для ссылки на Select
вместо SelectField
.
const SelectField = (props, ref) => {
const {label = "",...rest} = props;
const selectEl = React.useRef(null);
return (
<div className="react-select-wrapper">
{label ? <span className="input__label">{label}</span> : null}
<Select ref={ref} classNamePrefix="react-select" {...rest} />
</div>
);
}
export default React.forwardRef(SelectField);
Затем вы можете вызвать метод blur
со ссылкой на компонент SelectField
:
const ref = React.createRef();
<SelectField ref={ref} label=""/>;
ref.blur();