我想将唯一数据添加到我的存储数组中,但在添加数据时似乎卡住了,重复数据被推入数组。我用的是打字机。
所以我的切片函数看起来像这样。
const initialState = {
dropDownData:{
programs: [],
years: []
}
}
const slice = createSlice({
name:"filterSlice",
initialState: initialState,
reducers:{
updateProgram:(state, action) => {
state.dropDownData.programs = [...state.dropDownData.programs, action.payload];
}
}
});
我以这种方式调用这个reducer函数:dispatch(updateProgram(program))
所以我得到的程序是数组的形式。但我不需要程序数组中的重复数据。
如何更新我的reducer函数
2条答案
按热度按时间tpgth1q71#
而不是这个:
state.dropDownData.programs = [...state.dropDownData.programs, action.payload];
使用此:
state.dropDownData.programs = [...(new Set([...state.dropDownData.programs, action.payload]))];
方法:
Set
允许只保留参数中的唯一元素。new Set
使用现有两个数组中的元素创建时,Set
将只保留唯一的元素。...
spread-operator将Set
转换回数组。olmpazwi2#
我试着这样做,并为我工作: