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

setState array update but not removing the previous

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

 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));