【发布时间】:2021-09-01 15:34:38
【问题描述】:
我正在从事电子商务项目,我目前面临一个问题,即当用户单击添加到购物车按钮时,代码 setCart([...cart,item]) 从初始状态开始运行购物车是空数组,例如 const [cart,setCart] = useState([]) 因此,当我尝试将其保存在 localstorage 上时,它给了我空数组,然后开始保存第二个数组中的数据
代码:
const [cartValue,setCartValue] = useState(0)
const [cart,setCart] = useState([])
const cartValueIncreaserandSetter = (item) =>{
setCart([...cart,item])
setCartValue(cartValue+1)
localStorage.setItem("items",JSON.stringify(cart))
}
我希望 localstorage 立即保存添加的第一个项目,但 localstorage 在第一次点击添加到购物车时会提供 [] 数组
【问题讨论】:
-
setCard 不会立即执行,因此在调用 localStorage 时您的卡仍然是空的,只需将 ([cart, ...item]) 放入对 localStorage 的调用中即可。
-
@NicolasMenettrier 非常感谢 :)