不可变地更新对象数组并管理长度 redux
Update array of objects immutably and manage length redux
我正在尝试将搜索历史记录保存在我在 reducer 中制作的 react / redux 应用程序中(使用 redux-actions)。我想保存最近的十次搜索,并在开始时拥有最新的。我有一个对象数组,我想(不可变地)在数组的开头添加一个新对象,并将所有剩余结果向下移动一个。我也不希望数组增长超过 10 个元素。我目前只是每次都用这个覆盖初始元素:
[setWorkPermit]: (state, action) => ({
...state,
searchHistory: Object.assign([...state.searchHistory], { [0]: action.payload }),
}),
我希望在 ES6 中有一种干净的方法来做到这一点。有接盘者吗?
我认为数组切片可以解决这个问题!
只需构建一个新数组,其中包含索引为零的新对象,然后是之前 0-9 索引的一部分,如下所示:
searchHistory: [action.payload, ...state.searchHistory.slice(0,9)],
希望这对您有所帮助!
我正在尝试将搜索历史记录保存在我在 reducer 中制作的 react / redux 应用程序中(使用 redux-actions)。我想保存最近的十次搜索,并在开始时拥有最新的。我有一个对象数组,我想(不可变地)在数组的开头添加一个新对象,并将所有剩余结果向下移动一个。我也不希望数组增长超过 10 个元素。我目前只是每次都用这个覆盖初始元素:
[setWorkPermit]: (state, action) => ({
...state,
searchHistory: Object.assign([...state.searchHistory], { [0]: action.payload }),
}),
我希望在 ES6 中有一种干净的方法来做到这一点。有接盘者吗?
我认为数组切片可以解决这个问题!
只需构建一个新数组,其中包含索引为零的新对象,然后是之前 0-9 索引的一部分,如下所示:
searchHistory: [action.payload, ...state.searchHistory.slice(0,9)],
希望这对您有所帮助!