[英]How to render a button in parent component based on children action in react js?
[英]How to render based on AJAX result in react js?
只想根据来自 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>
</>
);
}
使用useState挂钩设置您的组件 state(列表)并在useEffect挂钩中获取数据...
Effect Hook 允许您在 function 组件中执行副作用:
在 React 组件中获取数据、设置订阅以及手动更改 DOM 都是副作用的示例。 无论您是否习惯将这些操作称为“副作用”(或仅称为“效果”),您之前都可能在组件中执行过它们。
import { useEffect, useState } from "react"
const getlist = async () => {
const res = await fetch("http://localhost:3001/customize")
if (!res.ok) {
throw new Error(`${res.status}: ${await res.text()}`)
}
return res.json()
}
const Index = () => {
const [ list, setList ] = useState([]) // start with an empty array
useEffect(() => {
getList()
.then(setList)
.catch(console.error)
}, []) // empty dependencies array, this runs only once
return (
// ...
{list.map((element, i) => (
<MovieCard movieName={element} key={i} />
))}
// ...
)
}
export default Index
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.