【发布时间】:2019-08-28 16:01:52
【问题描述】:
我使用 fetch().then() 进行 API 调用 ...
使用 application/json 获取响应,我想将响应中的数据保存在 html 标记内,返回并显示给用户。
从 API 我得到 25 个结果,但我只想要前 6 个(通过使用 for 循环实现)。
console.log() 里面是什么我想在代码中显示注释“结果应该在这里”。
我可以以及如何实现它吗?
代码如下。
我想在无状态/功能组件中使用它,所以不处理状态。
顺便说一句。我是所有这一切的新手,所以请温柔。谢谢!
const Related = props => {
const url = `/artist/${props.artistId}/related`;
const getRelatedArtists = () => {
fetch(url)
.then(res => res.json())
.then(res => {
var artist, name, numFans, img;
for (let i = 0; i < 6; i++) {
artist = res.data[i];
name = artist.name;
numFans = artist.nb_fan;
img = artist.picture;
console.log(`
<div>
<p>Name: ${name}</p>
<p>Fans: ${numFans}</p>
<img src=${img} alt=${name} />
</div>
`);
}
})
.catch(err => console.log(err));
};
return (
<div>
<p>Related artists</p>
<button onClick={getRelatedArtists}>get</button>
{/* Result should be here */}
</div>
);
};
我想要的结果是这样的:https://imgur.com/40dUyiw
【问题讨论】:
-
@Sunil 感谢例如,但我想在没有状态的情况下使用它。如果可能的话(?)
-
您必须使用状态或存储。如果您正在使用功能组件,那么您可以向 reducer 发送一个操作来更新您的商店(当您的 API 调用完成时)。商店更新将使用新数据重新渲染 UI。在较新版本的 react 中,您可以通过 react hooks 来实现相同的内部无状态组件。
-
@Sunil 是的,我会尝试使用钩子
标签: javascript reactjs api fetch