loadOptions вызывается для той же строки, которая искалась ранее, и cacheOptions включен
Я пытаюсь использовать из
react-select
библиотека.
я включил
cacheOptions
вариант.
Используя приведенные ниже шаги, я вижу проблему с
- Поиск строки
- Отображается список опций
- поле ввода
- Введите снова
- Немедленно отображает
- запускает API с поисковым вводом
tes
-
Clear
поле ввода - Войти
same string
опять такиtest
- Немедленно отображает
same list of options
- loadOptions запускает API с поисковым вводом
te
.
Я не уверен, почему loadOptions срабатывает в этом сценарии, если я ввожу ту же строку поиска.
Здесь
AsyncSelect
<AsyncSelect
classNamePrefix="select-item"
onChange={ onOptionSelect }
getOptionValue={ item => item.id }
placeholder="Search by Item"
formatOptionLabel={ company => <CompanyWithIcon Item={ Item } /> }
loadOptions={ loadOptions }
styles={ customStyles }
isSearchable
cacheOptions
isClearable
/>
Здесь
loadOptions
функция
const loadOptions = inputValue => searchItem(inputValue);
Кто-нибудь может помочь?
1 ответ
Я думаю, это происходит потому, что вы не используете обратный вызов или обещание для loadOptions. loadOptions должен вернуть обещание.
Справочный документ -> https://react-select.com/props#async-props говорит:
loadOptions: функция, которая возвращает обещание, представляющее собой набор параметров, которые будут использоваться после разрешения обещания.
Это должно быть, как показано ниже:
const loadOptions = (inputValue, callback) => {
setTimeout(() => {
callback(searchItem(inputValue));
}, 1000);
};