setState数组更新,但不删除以前的



我有一个小问题。让我们假设这个代码

const [ChatDetailsRender, setChatDetailsRender] = useState([]);
//ChatDetailsRender it s equal= {10,20}

array=[1,2,3,4]
array.forEach((nr)=>{
setChatDetailsRender();
//here some code to add the array for each value in useState})

这是一个关于我想做什么的简单例子,我有一些困难,因为我也有一些数据库调用。一切看起来都很好,但我如何在不覆盖数据的情况下更新ChatDetails useState?就像合并这两个数组一样。对不起,我想这个问题已经在这里了,但我能找到的只是useState中对象的例子,而我的例子只包含一个简单的数组。谢谢

您可以在更新时将新值连接到现有值,并使用回调方法设置状态。

const [ChatDetailsRender, setChatDetailsRender] = useState([]);
//ChatDetailsRender it s equal= {10,20}

array=[1,2,3,4]
setChatDetailsRender(previousChatDetails => previousChatDetails.concat(array));

最新更新