【发布时间】:2022-01-01 11:41:55
【问题描述】:
只想根据来自 ajax 调用的结果来渲染电影卡。
目前,电影卡组件是基于名为 list 的硬编码数组呈现的。我只是想让它动态化并用我的 ajax 数据替换它。
const getlist = async () => {
const res = await fetch('http://localhost:3001/customize');
const data = await response.json();
getlist();
};
export default function Index() {
const list = ['dexter', 'bb', 'got'];
return (
<>
<main className={parentstyle.main_container}>
<NavBar />
<div className={style.searchbar_container}>
<SearchBar />
</div>
<div className={style.card_container}>
{test.map((element, i) => {
return <MovieCard movieName={element} key={i} />;
})}
</div>
</main>
</>
);
}
【问题讨论】:
-
最简单的解决方案可能是使用SWR library,它提供了一个
useSWR()钩子,可以为您完成这种简单的数据获取。 (这个例子几乎就是你要找的:swr.vercel.app/examples/basic) -
List 需要 useState 来存储列表数据,然后对于初始调用,您必须使用 useEffect 调用 getList 并将数据设置到列表
-
根据数据进行渲染,数据到达时简单的用ajax结果更新。
标签: javascript reactjs ajax fetch-api react-functional-component