Я пытаюсь сохранить продукты из корзины покупок в локальное хранилище, но на странице refre sh это работает не так, как предполагалось. Когда я обновляю страницу sh, товары уже находятся в корзине, но как только я добавляю новый товар, он стирается. Кроме того, при удалении продукта удаляется все, а не указанный c при использовании локального хранилища. Вот что я пробовал:
in App.tsx
set array
const [productList, dispatch] = useReducer((state: any, action: any) => {
switch (action.type) {
case "ADD_ITEM":
const noDoubleItems = state.filter((item: any) => item.id !== action.payload.id);
localStorage.setItem("cart",JSON.stringify([...noDoubleItems, action.payload]));
return [...noDoubleItems, action.payload];
case "DELETE_ITEM":
localStorage.setItem("cart", JSON.stringify(state));
return state.filter((item: any) => item.id !== action.payload.id);
default:
return state;
}
}, []);
in Cart.tsx
get array
const storageCart = localStorage.getItem("cart");
const storageCartObject = storageCart && JSON.parse(storageCart);
Вот песочница кода: https://codesandbox.io/s/flamboyant-torvalds-tevby?file= / src / components / pages / Cart.tsx: 298-1026