【发布时间】:2021-11-20 08:24:19
【问题描述】:
我尝试在一秒钟后将我的arr的加载设置为false。但是html中的渲染功能似乎与react dev工具中的状态不一样。 这是代码和截图。
import { useEffect, useState } from 'react';
const App = (p: any) => {
console.log('render!!');
const [arr, setArr] = useState([{}, {}, {}, {}]);
useEffect(() => {
changeArr();
}, []);
const changeArr = async () => {
const localArr = JSON.parse(JSON.stringify(arr));
for (let i = 0; i < 4; i++) {
const p = new Promise(res => {
setTimeout(() => {
res('');
}, 1000);
});
const res = await p;
localArr[i].loading = false;
setArr(localArr);
}
};
return (
<>
<div>{JSON.stringify(arr)}</div>
</>
);
};
export default App;
【问题讨论】:
标签: reactjs asynchronous async-await promise