reactjs 如何使用useState替换父对象的属性数组项的值?

oyjwcjzk  于 2022-12-12  发布在  React
关注(0)|答案(1)|浏览(165)

我试图通过预览使图像上传inputs,其计数是例如5,我的意思是有5个“+”按钮,将用于上传图像。
对于5 box,我在下面显示了使用Array(5)的代码。我有一个对象:

const [object, setObject] = useState[{
    name: "",
    imageUrls: Array(5)
  }]

当imageUrls数组的第三个数组项发生变化时,我希望以如下方式更新此object

setObject({...object, imageUrls: object.imageUrls[2] = "xxx"})   // doesn't work

也尝试了这种方式,但再次出现语法错误。

setObject({...object, imageUrls[2]: "xxx"})   // doesn't work

什么是正确的方法来做这件事和写正确的语法?提前感谢。

xxhby3vn

xxhby3vn1#

您可以尝试以下操作:访问以前的状态快照,将对象复制到新引用中,更新所需字段,然后返回新对象。

setObject((prevState) => {
   copy = {...prevState};
   copy.imageUrls[2] = "xxx";
   return copy;
})

相关问题