J'apprends les ngx mais je ne comprends pas quand dois-je utiliser patchState
et setState
? Quelle est la différence?
const state = ctx.getState();
let data = this.service.list();
ctx.setState({
...state,
feedAnimals: data
});
vs.
let data = this.service.list();
ctx.patchState({
feedAnimals: data
});
Ces deux morceaux de code sont équivalents. patchState
n'est qu'une version abrégée du setState({...state, ... }
code.
À l'avenir, patchState
évoluera très probablement vers une aide à l'immuabilité plus utile avec des tests d'égalité (c'est-à-dire que l'état ne sera modifié que si le correctif modifie réellement des valeurs) et des opérateurs de correctifs (ceci est toujours en discussion).
Je recommanderais d'utiliser patchState
pour plus de netteté et pour profiter des fonctionnalités en cours.
const state = context.getState();
state.permissions = action.payload;
context.setState(state);
const state = context.getState();
state.permissions = action.payload;
context.setState({ ...state });
const state = context.getState();
state.permissions = action.payload;
context.patchState(state);
Tous les exemples mettent à jour l'état ... mais le premier n'active pas l'observable pour les changements d'état, car l'état est immuable, cela signifie que vous ne pouvez pas simplement le modifier et l'enregistrer, il n'est pas modifiable et vous devrez toujours cloner l'ancien état, modifier votre nouvelle copie et enregistrer ce nouvel état. patchState
le fait juste pour vous.