我想用新值修改我现有的数组
I want to modify my existing array with new values
我每次都尝试用新值修改我的数组,但无法实现该功能。
所以推送数组元素的代码是这样给出的:
const updateYears = (state, action) => {
state.dropDownData.years = [...new Set([action.payload])];
}
而我的初始状态是这样的:
const initialState = {
dropDownData: {
programs: [],
years: [],
},
};
上面的 reducer 函数正在将元素推送到“years”数组中。
locationSummaries.map((locationSummary)=>dispatch(updateYears(locationSummary.year)));
locationSummaries 是包含年份作为属性之一的对象数组。
所以当我的 year 数组包含值 [2017, 2018, 2019] 并且当我推送 [2018, 2019] 在里面,我在原来的 year 数组里面还有 [2017, 2018, 2019]。
相反,我想要的是将 year 数组修改为 [2018, 2019]。我相信它正在发生,因为相同的值被推入数组。
那么我应该如何修改我的reducer函数来实现这个修改。
如果 action.payload 是数组,如果您想完全修改数组,为什么不像这样分配新数组:
const updateYears = (state, action) => {
state.dropDownData.years = action.payload;
}
我每次都尝试用新值修改我的数组,但无法实现该功能。
所以推送数组元素的代码是这样给出的:
const updateYears = (state, action) => {
state.dropDownData.years = [...new Set([action.payload])];
}
而我的初始状态是这样的:
const initialState = {
dropDownData: {
programs: [],
years: [],
},
};
上面的 reducer 函数正在将元素推送到“years”数组中。
locationSummaries.map((locationSummary)=>dispatch(updateYears(locationSummary.year)));
locationSummaries 是包含年份作为属性之一的对象数组。
所以当我的 year 数组包含值 [2017, 2018, 2019] 并且当我推送 [2018, 2019] 在里面,我在原来的 year 数组里面还有 [2017, 2018, 2019]。 相反,我想要的是将 year 数组修改为 [2018, 2019]。我相信它正在发生,因为相同的值被推入数组。
那么我应该如何修改我的reducer函数来实现这个修改。
如果 action.payload 是数组,如果您想完全修改数组,为什么不像这样分配新数组:
const updateYears = (state, action) => {
state.dropDownData.years = action.payload;
}