下面的代码使用for-循环向数组添加值.每次将数组的当前状态记录在控制台中时。然后使用setTimeout函数在输出之间创建半秒的延迟。但是延迟输出总是在传递整个for循环之后显示带有状态的整个数组,而不是在调用setTimeout时显示状态。考虑一下折叠代码,这是不同的,因为它将i变量发送回回调(而不是数组):
for (var i = 0; i < 10
我使用useState钩子为其他组件提供一个数组,并使用一个add函数将一个新值推送到该数组中。数组和add函数都是通过上下文提供程序提供的。它似乎是通过执行以下操作来使用带有状态挂钩的推送 var newArray = arraysetArray(newArray) 不会导致使用状态的组件重新呈现,但在使用 set