2017-10-20 24 views
0

Je crée une application de librairie en utilisant l'API wp-rest et réagis et j'utilise redux comme ma bibliothèque de gestion d'état, Dans les livres d'application ont une catégorie différente et je veux parcourir les catégories indépendamment , mais puisque redux a un seul magasin lors de l'appel de state.concat() il concatène différents produits de catégorie les uns avec les autres. Que puis-je faire pour traiter les différents produits de manière indépendante?chercher les produits par catégorie et les gérer indépendamment réagir redux

+0

Bienvenue dans StackOverflow! S'il vous plaît lire https://stackoverflow.com/help/how-to-ask pour les pointeurs sur l'affichage d'une question et obtenir de bonnes réponses. – palsrealm

Répondre

0

Juste mettre à jour votre sélecteur redux pour imbriquer les livres dans leur catégorie.

books 
| 
|_categories 
    | 
    |_"science fiction" 
    | 
    |_[books] 
+0

@kangroo Merci pour votre réponse, pouvez-vous faire un peu clair –

0

Si je comprends votre problème correctement, voici deux façons dont vous devriez être en mesure de gérer cela:

  1. Utiliser plusieurs réducteurs, un pour chaque genre, et puis appelez combineReducers dans votre réducteur racine . Donc, si vous aviez un réducteur pour chaque genre, comme "scienceFiction" et "Fantasy", alors quand vous utiliseriez le réducteur de racine, votre état aurait des sous-objets, un pour chaque réducteur. Voir pour reference
  2. Définissez votre état pour avoir plusieurs sous-objets/sous-tableaux pour chaque genre dans votre réducteur unique. Le problème auquel les gens se heurtent habituellement est que, puisque l'objet état a des objets imbriqués, comment créez-vous un nouvel objet avec juste la partie d'état que vous devez mettre à jour (pratiques d'immatabilité). Vous pouvez utiliser une bibliothèque comme immutable.js pour résoudre ce problème, ou si vous voulez simplement utiliser des structures de données javascript simples, vous pouvez utiliser le update function, recommandé dans le react docs.