我有一个用于用户模块的简化程序,需要从用户数组中删除单个对象,但是同时,我需要保留所有这些旧记录
例如
下面是我的初始状态的虚拟数据
export const initialSettings = {
timezone: '',
category: '',
users: [
{
userId: '1',
name: 'ABC'
},
{
userId: '2',
name: 'ABCD'
},
{
userId: '3',
name: 'ABCDE'
},
{
userId: '4',
name: 'ABCDEF'
},
]
};
在上面的const中,我有一些数组用户,其中包含作为单独对象的用户列表
我能够获取用户详细信息,并尝试像这样将特定对象删除到减速器中
switch (...) {
case 'ADMIN_REMOVE_RX':
const data = action.payload.data;
const userid = data && data.userid;
return {
...state,
users: state.users.filter(item =>
item.userid !== userid
)
};
default:
return state;
}
最后,我能够获得输出,但是当我尝试过滤用户的数组时,它不再起作用,如果出现问题,请纠正我
答案 0 :(得分:0)
错误部分可能是
D
检查 data.userid 的数据类型,如果 data.userid 是字符串,则由于而无法获得预期的输出!== (严格比较运算符)。
答案 1 :(得分:0)
检查项目属性名称,对象是驼色的item.userId,但过滤器是小写的item.userid
state.users.filter(item => item.userId !== userid)