为了账号安全,请及时绑定邮箱和手机立即绑定

ReactJS -> 为什么我的本地存储以这种方式存储项目?

ReactJS -> 为什么我的本地存储以这种方式存储项目?

至尊宝的传说 2023-04-20 09:53:58
所以我在 useEffect 函数中有一个 localstorage setter 和 getter,如下所示: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
查看完整描述

1 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

你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正常使用


查看完整回答
反对 回复 2023-04-20
  • 1 回答
  • 0 关注
  • 102 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信