Javascript React Redux:删除项不会重新呈现数组
我通过将邀请的ID传递到后端来删除邀请,这很有效。但是,我的reducer无法正常工作,无法重新呈现新的筛选邀请数组。当我刷新页面时,已删除的邀请将消失。我做错了什么 行动:Javascript React Redux:删除项不会重新呈现数组,javascript,reactjs,react-redux,axios,Javascript,Reactjs,React Redux,Axios,我通过将邀请的ID传递到后端来删除邀请,这很有效。但是,我的reducer无法正常工作,无法重新呈现新的筛选邀请数组。当我刷新页面时,已删除的邀请将消失。我做错了什么 行动: export function deleteInvitation(id) { const user = JSON.parse(localStorage.getItem('user')); console.log('now deleting id ', id); return function(dis
export function deleteInvitation(id) {
const user = JSON.parse(localStorage.getItem('user'));
console.log('now deleting id ', id);
return function(dispatch) {
axios
.delete(`${ROOT_URL}/invitation/`, {
headers: { authorization: user.token },
params: { id: id }
})
.then(response => {
console.log(id);
dispatch({
type: DELETE_INVITATION,
id
});
});
};
}
减速器:
export default function(state = {}, action) {
switch (action.type) {
case INVITATION_SUCCESS:
return { ...state, invited: true, error: {} };
case INVITATION_FAILURE:
return { ...state, invited: false, error: { invited: action.payload } };
case FETCH_INVITATIONS:
return { ...state, invitations: action.payload };
case DELETE_INVITATION:
return {
...state,
invitations: state.invitations.filter(_id => _id !== action.id)
};
default:
return state;
}
}
我正在猜测
邀请
数组的结构
在减速器中,过滤器功能似乎不正确。该操作正在传递一个id
属性,我猜它是invitation
对象的属性。但是filter函数是从状态中筛选对象。其中对象是id
。也就是说,减速器的作用如下:
const action={id:0}
常量邀请=[{
_id:0,
名称:“名称0”,
位置:“位置0”
},
{
_id:1,
名称:“名称1”,
位置:“位置1”
},
{
_id:2,
名称:“名称2”,
地点:“地点2”
}
];
console.log(invitation.filter(_id=>_id!==action.id))代码>状态的结构可能重复。邀请
?筛选器-state.investments.filter(\u id=>\u id!==action.id)
-看起来应该是state.investments.filter(investment=>investment.\u id!==action.id)
是的,很好。我把lambda函数搞砸了。请加上这个作为回答,我会接受的。