fetchCocktailList
возвращает данные, однако ловушка интерпретирует, что она возвращает Обещание: fetchCocktailList().then((data) => setCocktails(data));
Я предлагаю переместить fetchCocktailList
внутрь крючка, поскольку он используется только там; переместите логи c, связанные с извлечением (изменением состояния) внутри функции.
const [cocktails, setCocktails] = useState([]);
useEffect(() => {
const fetchCocktailList = async () => {
const baseUrl = "https://www.thecocktaildb.com/api/json/v1/1/";
setLoading(true);
try {
const res = await fetch(`${baseUrl}filter.php?c=Cocktail`);
const data = await res.json();
console.log(data);
setCocktails(data);
setLoading(false);
} catch (err) {
console.log("Error fetching data");
setLoading(false);
}
};
fetchCocktailList();
}, []);
Это, однако, не похоже на полученную ошибку, но может помочь выяснить ее. Ошибка может появиться из возвращенного data
, убедитесь, что он возвращает массив элементов, а не объект со свойством, содержащим массив, например: { drinks: [] }
.