La première chose que j'ai essayé était le suivant:Sans Mutating Etat Redux
const initialState = {
items: {},
showCart: false,
showCheckout: false,
userID: null
};
export default function reducer(state=Immutable.fromJS(initialState), action) {
case 'REMOVE_FROM_CART':
return state.deleteIn(['items', String(action.id)]);
}
Lorsque la console connecter l'deleteIn ci-dessus, il ne supprime en fait l'élément de la carte correctement. Cependant, l'application ne s'affiche pas à nouveau car je suppose que je mute l'état (?). (mapStateToProps est appelé, mais pas de nouvel état).
Alors après je l'ai ceci:
case 'REMOVE_FROM_CART':
const removed = state.deleteIn(['items', String(action.id)]);
const removeItemState = {
...state,
items: { removed }
}
return state.mergeDeep(removeItemState);
Mais je suis juste ajouter l'élément supprimé à nouveau les éléments, la création d'une duplication.
Comment puis-je gérer cela?