如何解决setState 包含对象=> 数组=> 对象
我拥有的是
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}]
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。