簡體   English   中英

setState 包含對象=>數組=> 對象

[英]setState containing object=>array=> objects

我所擁有的是

const [productData, setproductData] = useState({
    title: "",
    description: "",
    price: "",
    selectedFile: "",
    images: [{ _id: "", urls: "" }],
  });

我將如何更改IMAGES object 中的值。 我想更改 id 和 Urls。

我嘗試了以下方法但不成功。

  setproductData({
    ...productData,
    images: [...productData.images._id, i],  //where i is any id or number
  });

但是當我嘗試執行它時,它說productData.images.id不可迭代。 有什么幫助請...

試試這個

 setproductData({
    ...productData,
    images: [{...productData.images[0], _id: i}], 
  });

如果你想修改選定的 id 只需使用

    setproductData({
        ...productData,
        images: productData.images.map((image) => {
          if (image._id === i) return {...image} // modify here
          return image
        }), 
    });

其中newId是您的新 _id, newUrls是您的新網址

setProductData(prev => ({
  ...prev,
  images: [...prev.images, {_id: newId, urls: newUrls}]
})
    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM