Я использую material-ui с функциональным компонентом реагирования и использую его компонент автозаполнения. Я настроил его и всякий раз, когда я изменяю текст в поле ввода, я ожидаю, что компонент отобразит новый результат поиска.
callAPI("xyz")
Я вызываю API в действии и, используя параметр xyz, я вызываю метод отправки из этого функционального компонента.
Проблема здесь в том, что когда компонент выполняет вызов, он должен дождаться ответа API и затем обработать результат, но он получает нерешенное обещание, поэтому он не может выполнить визуализацию.
<Paper square>
{callAPI("xyz").results.map(
result => console.log(result);
)}
</Paper>
, поскольку результаты являются нерешенным обещанием, оно не будет отображено.
Мне нужен какой-то способ вызвать карту только после того, как данные станут доступны, или показать какой-то текст до того, как данные появятся, а затем измениться, когда данные будут получены.
Любые предложения по исправлению этого кода будут очень полезны.
EDIT:
function IntegrationDownshift() {
return (
<div>
<Downshift id="downshift-simple">
{({
getInputProps,
getItemProps,
getMenuProps,
highlightedIndex,
inputValue,
isOpen,
selectedItem
}) => (
<div>
{renderInput({
fullWidth: true,
InputProps: getInputProps({
placeholder: "Search users with id"
})
})}
<div {...getMenuProps()}>
{isOpen ?
<Paper square>
{callAPI(inputValue).users.map(
(suggestion, index) =>
renderSuggestion({
suggestion,
index,
itemProps: getItemProps({
item:
suggestion.userName
}),
highlightedIndex,
selectedItem
})
)}
</Paper>
: null}
</div>
</div>
)}
</Downshift>
</div>
);
}