You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写对应已有removeItem action的删除数组项Redux reducer?

对应删除数组项的reducer实现

你可以直接在原有addItems reducer的switch分支中新增REMOVE_ITEM的处理逻辑即可,核心要遵循Redux不可变数据的要求,不直接修改原state数组,返回新的过滤后的数组:

export const addItems = (state = [], action) => {
    switch (action.type) {
        case 'ADD_ITEM':
            return [
                ...state,
                action.product
            ]
        // 新增删除分支逻辑
        case 'REMOVE_ITEM':
            // 过滤掉索引等于传入payload的数组项,返回新数组
            return state.filter((item, index) => index !== action.payload)
        default:
            return state;
    };
};

另外你现有代码的删除按钮还没有绑定触发删除的点击事件,需要补充绑定逻辑才能生效:

{showItems.map((item, index)=>{
    return(
        <ul key={index} className='d-flex justify-content-around'>
            <button 
                type='button' 
                className='btn-close btn-danger' 
                // 补充点击触发删除的逻辑
                onClick={() => dispatch(removeItem(index))}
            />
            <p>{item.author}</p>
            <p>{item.price}</p>
        </ul>
    );
})}

内容的提问来源于stack exchange,提问作者iman hosseingholizadeh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:39:00