une carte immuable utilisant dans une application Reduximmutable.js Carte non persistance des données
Demandez ce qui suit dans mon code réducteur:
const IWT = new Map();
for (const item of action.IWT) {
let current = IWT[item.index];
if (current) {
current
.get('services')
.push(item.SID);
} else {
current = new IWTObject({
index: item.ID,
stage: item.stage,
name: item.name,
ranking: item.rank,
services: new List([item.SID]),
});
console.log(current, item.ID, IWT);
IWT.set(item.ID, current);
console.log(IWT);
}
}
Pour une raison quelconque, je reçois sortie pour current
, item.ID
et IWT
dans la première sortie console.log()
, mais je reçois toujours un blanc immutable Map
pour IWT dans la deuxième sortie.
Qu'est-ce que je fais mal ici?
En raison de l'immutabilité :) 'set' crée une nouvelle carte parce que la carte originale est IMMUTABLE :) –
Eh bien, je me sens idiot. Je suppose que la meilleure chose à faire est de construire un objet de manière itérative et ensuite définir la carte à cela. – fox
Si vous avez plusieurs mutations à faire dans une boucle, jetez un oeil à la méthode 'withMutations' https://facebook.github.io/immutable-js/docs/#/Map/withMutations –