如何解决ReactJS->为什么我的本地存储以这种方式存储项目?
所以我在useEffect函数中有一个本地存储设置器和获取器,如下所示:
useEffect(() => {
localStorage.setItem('products',JSON.stringify(product))
})
useEffect(()=>{
setProduct([...product,JSON.parse(localStorage.getItem('products'))])
},[])
然后使用在这里声明的setProduct将它们保存到数组中:
const [product,setProduct]= useState([])
并且每当我在控制台中记录产品数组时,它都会在控制台中以以下格式返回该数组:
Array(1)
0: Array(5)
0: Array(4)
0:
Image: "/static/media/Dress.1c414114.png"
Price: 540
id: 0
name: "Blue Dress"
__proto__: Object
1:
Price: 600
id: 1
image: "/static/media/Dress.1c414114.png"
name: "Red Dress"
__proto__: Object
我的问题是,为什么它会以这种格式显示?如何使它看起来像这样:
Array(1)
0:
Image: "/static/media/Dress.1c414114.png"
Price: 540
id: 0
name: "Blue Dress"
__proto__: Object
1:
Price: 600
id: 1
image: "/static/media/Dress.1c414114.png"
name: "Red Dress"
__proto__: Object
解决方法
您的JSON.parse
返回一个数组。
setProduct([...product,JSON.parse(localStorage.getItem('products'))])
将创建一个包含product
的数组,以及另一个数组,即本地存储项。
改为传播本地存储项目。
setProduct([...product,...JSON.parse(localStorage.getItem('products'))])
或者只是将其保存在内存中
const [product,setProduct]= useState(JSON.getItem('products') || []);
useEffect(() => {
localStorage.setItem('products',JSON.stringify(product));
},[product])
并正常使用product
和setProduct
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。