4 回答

TA贡献1816条经验 获得超4个赞
数据必须以某种方式持续存在 - 这意味着您必须将其实际保存在某个地方。
您可以在客户端上使用 localStorage。然后,请确保在购物车发生变化时更新它。
就像是:
const [cart, setCart] = useState(localStorage.getItem('cart'));
useEffect(()=>{
localStorage.setItem('cart', cart)
},[cart]);

TA贡献1851条经验 获得超5个赞
如果您使用 Redux,请使用Redux-Persist,否则只需在组件挂载时从 localStorage 加载数据,并在组件卸载时将其保存到 localStorage

TA贡献1909条经验 获得超7个赞
您应该在代码中使用 localStorage。因为当你刷新页面时,你的状态是空的,但是本地存储存储了数据。
useEffect(() => {
let newCartData = localStorage.getItem("Product")
if (newCartData === []) {
return []
}
else {
return JSON.parse(newCartData)
}
}, [])
const addToCart = (product) => {
localStorage.setItem("Product", JSON.stringify(product))
}

TA贡献1836条经验 获得超13个赞
当您刷新页面时,您将丢失当前状态,即它没有存储在其他地方,因此您必须首先将其存储在某个地方。要存储状态,您可以直接将其存储在 localStorage 中,也可以使用 redux-toolkit。在我看来,redux-toolkit 是最好的选择。
您需要安装 redux-toolkit,然后根据您的用途创建切片并存储,这样可以非常灵活地重用并在需要时清空状态。
添加回答
举报