0
votes

ReactJS: Redux State ne change pas

Je commence juste avec réagir et redux et je suis tombé sur quelque chose que je ne peux pas comprendre moi-même - je pense que Redux State ne change pas et que cela provoque des erreurs (certaines des). Je vérifie l'état avec l'utilisation de la télécommande-Redux-DevTools@0.5.0. Mon code:

catégories.js: p> xxx pré>

../../ actions / catégories.js: p> xxx pré> Réducteurs / catégories.js: P>

import { combineReducers } from "redux";
import categories from './categories';

export default combineReducers({
    categories,


2 commentaires

Pourriez-vous partager votre fichier rootReducer ?


Bien sûr, l'a ajouté à la fin (réducteurs / index.js).


3 Réponses :


2
votes

Je crois que votre problème est que vous exportez deux fois votre catégories deux fois, une fois connecté, l'autre non.

Si vous supprimez Exporter à partir de Les catégories de classe d'exportation étend le composant , fonctionnent-t-il comme prévu?


5 commentaires

Si je supprimais l'exportation, il imprime "Exporter 'Catégories' n'a pas été trouvé dans './Catégories' dans le serveur NPM


Vous devrez l'importer différemment car il utilise réellement un par défaut . Vous seriez importer des catégories à partir de "./categories" au lieu de importer {Catégories} de "./Catégories"


Oui, vous avez raison et cela résout la majorité des problèmes que j'avais - plus ceci.props.gecatégories n'est pas une fonction et maintenant je peux afficher ceci.props.catégories Contenu en boucle (si je peux l'appeler cela) dans les catégories.js, mais il y a encore une dernière chose - l'état de Redux est toujours vide. Je suppose que je l'ai configuré de manière intégrée, car tout le reste fonctionne très bien.


Pouvez-vous confirmer que l'API que vous frappez est en train de vous donner la réponse que vous attendez? Vous pouvez simplement consoler.Log the res dans getcategories . vérifier.


Oui, je récupère d'API ce qui est attendu - je l'ai imprimé l'un des composants et a été capable de comparer.



0
votes

Lorsque vous mappiez l'état dans un composant, vous devez accéder à la variable souhaitée via un réducteur.

donc au lieu de: xxx

Vous devez utiliser: xxx


1 commentaires

Oui, vous avez raison, cela devrait être fait comme vous le dites. Changé cette ligne, mais malheureusement, pas de chance. Il n'entre pas catégories_get dans le réducteur (vérifié avec la connexion à la console).



0
votes

Vos accessoires n'ont pas la méthode GetCatégories, car vous ne l'avez pas transmis comme une fonction à connectez code>.

Une meilleure approche consiste à définir uniquement le code d'action dans votre fichier d'actions et Ensuite, utilisez mapdispatchtoprops code>. p>

../../ actions / catégories.js p> xxx pré>

catégories.js p >

import { getCategories } from '../../actions/categories'
import { CATEGORIES_GET } from "./types";

const mapDispatchToProps = dispatch => {
  return {
     getCategories: () => dispatch(() => { type: CATEGORIES_GET, payload: getCategories() }),
  }
}

export default connect(mapStateToProps, mapDispatchToProps)(Categories);


0 commentaires