【发布时间】:2021-03-17 08:21:15
【问题描述】:
假设我有这个代码。
var s = [1,2,3,4,5,6,7,8,9,0];
const[arr,setArr]=useState(s);
while(arr.length != 0){
setArr(arr.splice(0,1));
console.log(arr); //This returns [2,3,4,5,6,7,8,9,0] and [3,4,5,6,7,8,9,0] and so on until []
}
我在函数组件的末尾返回 {arr.length}。但是,它首先渲染 10,然后等到整个 while 循环运行后再渲染 1。中间的所有数字都被简单地跳过了。
我有点理解为什么会发生这种情况,但是无论如何我可以展示所有的长度吗?我有一个睡眠功能,它需要几毫秒并在这段时间内暂停程序,如果它有任何用处,以确保用户可以在合理的时间内看到渲染的长度。
提前致谢!
【问题讨论】:
-
const[arr,setArr]=setState(s);看起来很奇怪。你的意思是useState而不是setState?
标签: javascript reactjs components state rerender