有谁知道如何检查对象是否在数组中,如果是,更新它吗?
我尝试了find方法,但是当我这样做的时候,它说它找不到我所引用的对象;我也尝试了include,但是由于某种原因,它也认为该项不在数组中。
这是我最好的了
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
interface Displate {
name: string;
finish: string;
size: string;
frame: string;
price: number;
quantity: number;
}
interface DisplateArray extends Array<Displate> {}
const initialState: DisplateArray = [];
export const cartSlice = createSlice({
name: "cart",
initialState,
reducers: {
addDisplate: (state, action: PayloadAction<Displate>) => {
state.map((displate) => {
if (displate.name === action.payload.name) {
return displate.quantity++;
} else {
return state.push(action.payload);
}
});
},
},
});
export const { addDisplate } = cartSlice.actions;
export default cartSlice.reducer;
但每次只会添加一个新对象
1条答案
按热度按时间gkl3eglg1#
quantity
似乎没有更新,因为state.map
没有将更新的quantity
变回代理state
以进行更新。假设目标是检查状态数组中具有相同
name
的项,如果项存在,则向其quantity
添加1,如果不存在,则向数组添加来自action.payload
的新对象,考虑使用find
作为条件(使用Redux Toolkit中的Immer update):