【发布时间】:2020-10-04 10:13:06
【问题描述】:
为什么会多次触发fetchData? console.log 似乎几乎无限循环?我如何让它只运行一次 onload 并在以后调用fetchData() 时只触发一次?我在这里做错了什么或错过了什么?
const [data, setData] = useState(null);
let fetchData = React.useCallback(async () => {
const result = await fetch(`api/data/get`);
const body = await result.json();
setData(body);
console.log(data)
},[data])
useEffect(() => {
fetchData();
},[fetchData]);
更新(附加问题):如何在return() 之前等待data 填充现在下面的这个现在给出了错误,因为它一开始是空的?:data.map is not a function
return (
<select>
{data.map((value, index) => {
return <option key={index}>{value}</option>
})}
</select>
)
【问题讨论】:
标签: javascript reactjs fetch-api use-effect use-state