【发布时间】:2023-01-25 15:21:34
【问题描述】:
我正在从 multiavatar api 获取 svgs 但问题是当我在 useEffect 中编写函数时它给了我相同的值四次。但是当我使 useEffect 异步时,它会显示不同的值。
我只想知道为什么会这样?
它向我展示了 4 张不同的图像。
useEffect(async () => {
const data = [];
for (let i = 0; i < 4; i++) {
const image = await axios.get(
`${api}/${Math.round(Math.random() * 1000)}`
);
const buffer = new Buffer(image.data);
data.push(buffer.toString("base64"));
}
setAvatars(data);
setIsLoading(false);
}, []);
这向我展示了 4 次相同的图像
useEffect(() => {
const loadData = async () => {
const data = [];
for (let i = 0; i < 4; i++) {
const image = await axios.get(
`${api}/${Math.round(Math.random) * 1000}`
);
const buffer = new Buffer(image.data);
data.push(buffer.toString("base64"));
}
setAvatars(data);
setIsLoading(false);
};
loadData();
}, []);
【问题讨论】:
标签: reactjs for-loop react-hooks async-await