Redux - Comment ajouter une entrée de gamme dans le réducteur
Je coincé avec ce bit et je ne peux pas le progrès - je suppose que la solution est simple, mais je ne peux pas comprendre. Je suis en train d'ajouter une entrée dans le réducteur de sorte que les données dans ressemblerait à quelque chose ce:
state = {
entryId: {
entryName: ["something", "something2", "something3" /* and so on... */]
}
};
La mesure où cela est le plus proche de ce que je reçois, mais, au lieu d'ajouter une nouvelle entrée unique, il est le remplacement de celui qui est stocké déjà. Aussi j'ai besoin d'être en mesure d'ajouter cet élément à l'état vide où entryId, entryName n'existe pas encore pour éviter l'erreur:
switch(type) {
case ADD_ENTRY:
return {
...state,
[entryId]: {
...state[entryId],
[entryName]: {
[uniqueEntry]: true
}
}
};
}
Une idée de ce que je fais mal?
- Pouvez-vous écrire un contexte à l'exemple? Par exemple, pouvez-vous indiquer la forme de l'action la manipulation des intros réducteur?
- Je suis dispatching quelque chose comme ceci: addEntry({ entryId, entryName, uniqueEntryid })
- Essayez ceci: lien
- grâce jzm un effort. J'ai essayé quelque chose de similaire, mais le problème est à l'état initial / de la première entrée, entryId est pas défini. Vous pouvez voir la question que je vais avoir lorsque vous définissez l'état initial à vide de l'objet c'est à dire const état = {}; Et, puisque toutes les valeurs sont dynamiques, je n'ai pas différent de l'état initial
Vous devez vous connecter pour publier un commentaire.
Si vous essayez d'ajouter un élément à la fin de la
entryName
tableau que vous devriez faire:ES6 écart avec les tableaux fonctionne comme ceci:
Découvrez ce gist qui est un exemple de quelque chose de très similaire à ce que vous faites.
J'ai trouvé cet ensemble d'exemples extrêmement utile. Beaucoup de choses ici:
https://github.com/sebmarkbage/ecmascript-rest-spread
Mise à jour:
Si
entryName
est initialisé àundefined
comme vous le dites dans votre commentaire, vous pourriez faire ceci:Je pense que c'est un assez bon exemple de la façon douloureuse, elle peut travailler à Réagir/redux à l'aide d'un fortement imbriqués structure de données. FWIW, il a été recommandé à moi à plusieurs reprises pour aplatir votre état autant que possible.
immutable js
?