gpt4 book ai didi

reactjs - 如何删除 redux 存储数组中的最后一个元素?

转载 作者:行者123 更新时间:2023-12-03 14:07:27 24 4
gpt4 key购买 nike

我有以下代码:

const initialState = {
searchItems: ['Item'],
}
export default (state = initialState, action) => {
switch (action.type) {
case BACKSPACE_REMOVE_SEARCH_ITEM:
console.log(state.searchItems);
return {
...state,
searchItems: [...state.searchItems.splice(-1)],
};
default:
return state;
}
}

但是当我尝试执行这样的操作时,我收到与之前相同的数组,其中包含“Item”,但它不会“删除它”。哪里有问题?

最佳答案

.splice 返回已删除的元素。实际上,您根本不应该使用 .splice 因为它会改变原始数组。我知道您正在传播原始的,但传播语法会产生浅副本。所以,要小心。 .slice 会更好,它还返回已删除的切片。在这种情况下,您可能需要使用 .slice.concat 的组合,或者您可以使用 .filter

return {
...state,
searchItems: state.searchItems.filter( (_,i) =>
i !== state.searchItems.length-1
),
};

关于reactjs - 如何删除 redux 存储数组中的最后一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52433999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com