setState 包含 object=>array=> objects
setState containing object=>array=> objects
我有的是
const [productData, setproductData] = useState({
title: "",
description: "",
price: "",
selectedFile: "",
images: [{ _id: "", urls: "" }],
});
我将如何更改 IMAGES 对象中的值。我想更改 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}]
})
我有的是
const [productData, setproductData] = useState({
title: "",
description: "",
price: "",
selectedFile: "",
images: [{ _id: "", urls: "" }],
});
我将如何更改 IMAGES 对象中的值。我想更改 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}]
})