我想將唯一資料添加到我的存盤陣列中,但在添加資料時似乎卡住了,并且重復資料被推入陣列中。我正在使用打字稿。
所以我的切片函式看起來像這樣。
const initialState = {
dropDownData:{
programs: [],
years: []
}
}
const slice = createSlice({
name:"filterSlice",
initialState: initialState,
reducers:{
updateProgram:(state, action) => {
state.dropDownData.programs = [...state.dropDownData.programs, action.payload];
}
}
});
我以這種方式呼叫這個減速器函式:dispatch(updateProgram(program))
所以我得到的程式是陣列的形式。但我不需要程式陣列中的重復資料。
那么如何更新我的減速器功能。
uj5u.com熱心網友回復:
而不是這個:
state.dropDownData.programs = [...state.dropDownData.programs, action.payload];
用這個:
state.dropDownData.programs = [...(new Set([...state.dropDownData.programs, action.payload]))];
方法:
- javascript
Set允許僅保留引數中的唯一元素。 - 因此,當使用
new Set現有兩個陣列中的元素創建 a 時,Set將僅保留唯一元素。 - 接下來,我們需要使用
...擴展運算子將Set回傳轉換為陣列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/422160.html
標籤:
