Я использую компонентact-select в своем приложении. Это связано с Алголией, которая предоставляет варианты для меня. Все работает хорошо, за исключением случаев, когда я уже выбрал значение ранее, а затем снова введите select. Каждый элемент выглядит предварительно выбранным.
[ Это мой код:
type Hit = {
address: string;
zip: string;
city: string;
objectID: string;
};
const algoliaClient = algoliasearch(
'something',
'something',
{
timeout: 1000,
},
);
const index = algoliaClient.initIndex('something');
export const Search: React.FC<{ section: ComponentTextInput }> = ({
section,
}) => {
const [currentHit, setCurrentHit] = React.useState<Hit>();
const [hitArray, setHitArray] = React.useState<Hit[]>([]);
const [noOptionMessage, setNoOptionMessage] = React.useState<string>(
'Bitte geben Sie mindestens 3 Zeichen ein',
);
function onChange(value: string) {
if (value.length > 2) {
index.search<Hit>({ query: value }, (error, { hits }) => {
if (error) {
throw new Error(error.message);
}
if (hits.length === 1) {
setCurrentHit(hits[0]);
} else {
setHitArray(hits);
setCurrentHit(undefined);
setNoOptionMessage('Keine Addresse gefunden');
}
});
} else {
setNoOptionMessage('Bitte geben Sie mindestens 3 Zeichen ein');
setHitArray([]);
}
}
const classes = useStyles();
return (
<div className={classes.textField}>
<Select
onInputChange={onChange}
inputId="react-select-single"
placeholder="Bitte geben Sie Ihre Addresse ein"
TextFieldProps={{
label: 'Address',
InputLabelProps: {
htmlFor: 'react-select-single',
shrink: false,
},
}}
value={currentHit}
noOptionsMessage={() => noOptionMessage}
options={hitArray}
pageSize={10}
/>
</div>
);
};
Может кто-нибудь сказать мне, почему селектор предварительно выбирает каждое значение?
Заранее спасибо!