reactjs - 没有 URL 的图像显示 React API
问题描述
我看过几十个 youtube 视频,但没有遇到我的问题。
在 React 中,我想显示一张来自 spoonacular API 的图片,我只在控制台中获得“name.png”(即不是完整的 url)。
在setPicture(result.data.results[0].image)
我在控制台中获取图片的名称时,我只需要获取它前面的 url。我用以下方法尝试了这个,<img src={`https://spoonacular.com/cdn/ingredients_250x250/${picture}`} alt="food">;
我也尝试将 url 放在 useState 中,但这不起作用。
我的完整代码如下:
const [food, setFood] = useState([]);
const [picture, setPicture] = useState([])
useEffect(() => {
async function fetchFood() {
const result = await axios.get(`https://api.spoonacular.com/food/ingredients/search?query=rice&number=20&apiKey=${apiKey}`);
console.log(result);
console.log("DATA:", result.data);
console.log("DATA RESULTS:", result.data.results);
// console.log("DATA RESULTS[0]:", result.data.results[0]);
// console.log("DATA RESULTS[0]:", result.data.results[0].title);
setFood(result.data.results[0]);
setPicture(result.data.results[0].image)
}
fetchFood();
}, []);
return (
<div>
<div>{food.name}</div>
<img src={`https://spoonacular.com/cdn/ingredients_250x250/${picture}`} alt="food">;
</div>
);
}
解决方案
JSX 应该关闭/>
(或者>
如果它有孩子)没有>;
<img src={`https://spoonacular.com/cdn/ingredients_250x250/${picture}`} alt="food" />
>;
如果您只想显示一个元素,则可以使用,例如:
function app() {
return <img />;
}
它会起作用,因为它是return
. 而你已经拥有了。
return (
<div>
<div>{food.name}</div>
<img src={`https://spoonacular.com/cdn/ingredients_250x250/${picture}`} alt="food" />
</div>
); // here
推荐阅读
- zsh - zsh 函数将任意字符串放入行编辑器
- html - aria-label 与表单标签
- material-ui - 如何从材料 ui 列表项中删除默认填充?
- angular - Angular Development / Apache 而不是 ng serve
- apache-spark - 使用 spark.sql 和 union 时多次读取 Hive 表
- python - 如何在不更改数据框的情况下检查列的拆分值?
- openrefine - 使用 OpenRefine 进行集群时,有没有办法“排除”集群中的字符串?现在感觉它要么把所有东西都聚集在一起
- python - 升级到 2.2 后的 Django RelatedObjectDoesNotExist
- java - 通过@Query 获取数据时,Hibernate 不读取@Column
- amazon-web-services - 如何在 AWS Pinpoint 中创建自定义控制面板?