1
ID가 작동하는 백엔드로 전달하여 초대장을 삭제합니다. 그러나 내 감속기가 필터링 된 새 배열을 다시 렌더링하기 위해 제대로 작동하지 않습니다. 페이지를 새로 고침하면 삭제 된 초대장이 사라집니다. 내가 도대체 뭘 잘못하고있는 겁니까?React-Redux : 항목을 삭제해도 배열이 다시 렌더링되지 않습니다.
액션 :
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;
}
}
가능한 중복 (HTTPS를 : //stackoverflow.com/questions/34582678/is-this-the-correct-way-to-delete-an-item-using-redux) – mersocarlin
'state.invitations'의 구조는 무엇입니까? 필터 - 'state.invitations.filter (_id => _id! == action.id)'-'state.invitations.filter (invitation => invitation._id! == action.id)'처럼 보입니다. –
네, 완벽합니다. 나는 람다 함수를 망치고 있었다. 이것을 답변으로 추가하십시오. 동의하겠습니다. –