reactjs - 如何将数据从本地存储添加到购物车?
问题描述
我正在尝试从本地存储设置购物车数据并将其设置在购物车项目上。我已经在本地存储上设置了购物车数据。但是当我尝试将本地存储的数据设置到购物车时遇到问题。当我尝试设置它时,我无法正确设置它。也许这就是我面临的问题。这是购物车减速器代码
import { useState } from "react";
import { SHOW_HIDE_CART, ADD_TO_CART, REMOVE_ITEM } from "../Types";
const CartReducer = (state, action) => {
const cartDataFromLocal = JSON.parse(localStorage.getItem('cartItem');
switch (action.type) {
case SHOW_HIDE_CART: {
return {
...state,
showCart: !state.showCart,
};
}
case ADD_TO_CART: {
return {
...state,
cartItems: [...state.cartItems, action.payload],
};
}
case REMOVE_ITEM: {
return {
...state,
cartItems: state.cartItems.filter(
(item) => item._id !== action.payload
),
};
}
default:
return state;
}
};
export default CartReducer;
这是购物车状态的代码
import { useState } from "react";
import { SHOW_HIDE_CART, ADD_TO_CART, REMOVE_ITEM } from "../Types";
const CartReducer = (state, action) => {
const cartDataFromLocal = JSON.parse(localStorage.getItem('cartItem'))
switch (action.type) {
case SHOW_HIDE_CART: {
return {
...state,
showCart: !state.showCart,
};
}
case ADD_TO_CART: {
return {
...state,
cartItems: [...state.cartItems, action.payload],
};
}
case REMOVE_ITEM: {
return {
...state,
cartItems: state.cartItems.filter(
(item) => item._id !== action.payload
),
};
}
default:
return state;
}
};
export default CartReducer;
解决方案
我没有看到你cartDataFromLocal
在任何地方使用变量,你需要在你的有效负载中使用本地存储的内容来调度操作:
// in component
dispatch(addItemToCart(cartDataFromLocal));
// in actions
const addItemToCart = (cartDataFromLocal) => (dispatch) => {
dispatch({
type: 'ADD_TO_CART',
payload: cartDataFromLocal
})
}
推荐阅读
- soap - SOAP 请求:如何按顺序发出多个请求消息
- c# - 如何调用方法
通用的 - excel-formula - SUMIFS 函数内的逻辑运算符“<=”
- javascript - Vue.js 基于嵌套属性设置属性
- matlab - MATLAB:在 csvread() 中将 NA 导入为 NaN
- docker - 来自守护进程的错误响应:获取 https://registry-1.docker.io/v2/: Forbidden
- maven - Maven多模块项目失败快照依赖
- python - 姿势关键点 numpy 平均
- bash - 将 bash_completion 与 cli 工具一起使用
- python - Python:将整数转换为计数(即 3 --> 1,2,3)