我正在为移动的商店创建购物车。我想更改它以使用@reduxjs/toolkit。我需要更改下面的reducer代码以使用reduxjs/toolkit运行
import {
ADD_TO_CART,
REMOVE_FROM_CART,
CLEAR_CART
} from '../constants';
const cartItems = (state = [], action) => {
switch (action.type) {
case ADD_TO_CART:
return [...state, action.payload]
case REMOVE_FROM_CART:
return state.filter(cartItem => cartItem !== action.payload)
case CLEAR_CART:
return state = []
}
return state;
}
export default cartItems;
上面的输出在array的下面--这是要推到Cart的内容。我想修改上面的代码以使用reduxjs,并输出与下面类似的输出,以及增加/减少Cart的数量。
Array [
Object {
"product": "5f15d92ee520d44421ed8e9b",
"quantity": 1,
},
Object {
"product": "62e5285f92b4fde9dc8a384c",
"quantity": 1,
},
Object {
"product": "62e52c4892b4fde9dc8a3881",
"quantity": 1,
},
Object {
"product": "62e52c4892b4fde9dc8a3881",
"quantity": 1,
},
]
我已在下面创建了新商店
import {
configureStore
} from "@reduxjs/toolkit";
import cartItems from "./Reducers/cartslice";
import {
combineReducers
} from "redux";
const reducer = combineReducers({
cartItems: cartItems,
});
const store = configureStore({
reducer,
});
export default store;
我一直在用reduxjs创建一个新的reducer,下面是代码。
import { createSlice } from '@reduxjs/toolkit';
const cartItems = createSlice({
name: 'cart',
initialState: {cart:[]},
reducers: {
addToCart: (state, action) => {
//What do I input here
},
},
});
export default cartItems.reducer;
1条答案
按热度按时间ljsrvy3e1#
你可以遵循这个逻辑。首先让它在你的项目中工作,然后进一步扩展它。
编辑:stoje.js: