Как отмечает Эндрю в комментариях, похоже, что ответ от сервера равен undefined
, и это то, что добавляется к объекту состояния рецептов. Вы можете проверить это в консоли. Например, допустимы ли ваш ключ API и имя рецепта? Вы обращаетесь к правильной части возвращенных данных?
Кроме того, recipes
в state
пусто при первом рендере. Вы должны проверить эту возможность в своем коде. Здесь я просто возвратил пустой div, но вы можете вместо этого добавить туда загрузочный счетчик или что-то еще, чтобы предоставить пользователю полезную обратную связь.
render() {
const { recipes } = this.state;
if (!recipes.length) return <div />;
return (
<div className="App">
<header className="App-header">
React Cookbook
</header>
<InputForm getRecipe={this.getRecipe} />
<Recipes recipes={recipes} />
</div>
);
}