Я играю с реакцией выбора в моем коде, которая позволяет пользователю выполнять поиск по списку клиентов, этот список должен быть загружен поиском пользователя.
filterClients(inputValue) {
let userService = new UserService();
var clientList = userService.getClientList(inputValue);
clientList.then(s => {
console.log(Object.values(s.data)); // This works
return {options: Object.values(s.data)};
}).catch(e => {
console.log(e);
});}
promiseOptions (inputValue) {
if (inputValue.length >= 3) {
return new Promise(resolve => {
setTimeout(() => {
resolve(this.filterClients(inputValue));
}, 1000);});
} else {
return [];
}}
handleInputChange (newValue){
const inputValue = newValue.replace(/\W/g, '');
this.setState({ inputValue });
return inputValue;};
render() {
return (
<React.Fragment>
<AsyncSelect
name="clientSelector"
cacheOptions
defaultOptions
loadOptions={this.promiseOptions}
onInputChange={this.handleInputChange}
/>
</React.Fragment>
); }
Я вижу массив, поступающий из API, каждый раз, когда я изменяю ввод, но я не знаю, почему мой выбор не загружает данные.
Это пример ответа API:
[
{
"label": "TEST1",
"value": "1",
"location": "ZZZZZ"
},
{
"label": "TEST3",
"value": "2",
"location": "MADRID"
},
{
"label": "TEST3",
"value": "3",
"location": "TRIANA"
}
]