4 回答

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊
數(shù)據(jù)必須以某種方式持續(xù)存在 - 這意味著您必須將其實(shí)際保存在某個(gè)地方。
您可以在客戶端上使用 localStorage。然后,請(qǐng)確保在購(gòu)物車發(fā)生變化時(shí)更新它。
就像是:
const [cart, setCart] = useState(localStorage.getItem('cart'));
useEffect(()=>{
localStorage.setItem('cart', cart)
},[cart]);

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊
如果您使用 Redux,請(qǐng)使用Redux-Persist,否則只需在組件掛載時(shí)從 localStorage 加載數(shù)據(jù),并在組件卸載時(shí)將其保存到 localStorage

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
您應(yīng)該在代碼中使用 localStorage。因?yàn)楫?dāng)你刷新頁(yè)面時(shí),你的狀態(tài)是空的,但是本地存儲(chǔ)存儲(chǔ)了數(shù)據(jù)。
useEffect(() => {
let newCartData = localStorage.getItem("Product")
if (newCartData === []) {
return []
}
else {
return JSON.parse(newCartData)
}
}, [])
const addToCart = (product) => {
localStorage.setItem("Product", JSON.stringify(product))
}

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
當(dāng)您刷新頁(yè)面時(shí),您將丟失當(dāng)前狀態(tài),即它沒(méi)有存儲(chǔ)在其他地方,因此您必須首先將其存儲(chǔ)在某個(gè)地方。要存儲(chǔ)狀態(tài),您可以直接將其存儲(chǔ)在 localStorage 中,也可以使用 redux-toolkit。在我看來(lái),redux-toolkit 是最好的選擇。
您需要安裝 redux-toolkit,然后根據(jù)您的用途創(chuàng)建切片并存儲(chǔ),這樣可以非常靈活地重用并在需要時(shí)清空狀態(tài)。
添加回答
舉報(bào)