【发布时间】:2021-08-11 17:49:08
【问题描述】:
我正在尝试构建一个 React 食谱应用程序。我正在为食谱搜索提出 API 请求。 我的问题是关于在这一行中使用地图
{recipes.map((recipe) => (
<Recipe />
))}
我们正在尝试访问数组中的对象。正确的?是的,这行得通。但是,我不明白为什么
{recipes.forEach ((recipe) => (
<Recipe />
))}
不起作用。你能解释一下吗?整个代码如下。
App.js
import React, { useEffect, useState } from "react";
import Recipe from "./Recipe";
import "./App.css";
function App() {
const APP_ID = "xxxxxxxxxxx";
const APP_KEY = "yyyyyyyyyyyyyyyyyyy";
const [recipes, setRecipes] = useState([]);
useEffect(() => {
getRecipes();
}, []);
//yeni bir fonksiyon yazıyorum. take care of fetching all data
const getRecipes = async () => {
const response = await fetch(
`https://api.edamam.com/search?q=chicken&app_id=${APP_ID}&app_key=${APP_KEY}`
);
const data = await response.json();
setRecipes(data.hits);
};
return (
<div className="App">
<form className="search-form">
<input className="search-bar" type="text" />
<button className="search-button" type="submit">
Search
</button>
</form>
{recipes.map((recipe) => (
<Recipe />
))}
</div>
);
}
export default App;
Recipe.js
import React from "react";
const Recipe = () => {
return (
<div>
<h1>Title</h1>
<p>Calories</p>
<img src="" alt="" />
</div>
);
};
export default Recipe;
【问题讨论】:
标签: arrays reactjs ecmascript-6