0
votes

Redux MapDispatchToprops ne fonctionne pas

Donc, je suis nouveau à Redux et j'essaie d'obtenir ce modèle de base fonctionner afin que je puisse travailler rapidement sur un petit projet personnel, je fixais tout et que je n'ai aucune erreur, mais j'essaie de tester et de mesurer ma fonction Ne fonctionne pas, j'espérais que quelqu'un puisse signaler ce que j'ai manqué.

J'ai suivi plusieurs tutoriels différents et que chacun a une approche différente et que cela m'a donc perdu un peu donc je m'excuse pour cela.

mon magasin.js ressemble à ce que xxx

J'ai utilisé un combinaison de combinaisons dans mon index.js dans le dossier des réducteurs et l'authentification: pointe vers l'autheucer.js fichier, qui est ce xxx

maintenant ce que je vis est d'avoir un bouton qui change que "isloggedin" état initial à une chaîne vraie au lieu d'un faux, je "Je suis allé dans mon dossier d'actions et a fait une authacte.js qui ressemble à ce que xxx

et enfin je veux vous montrer ma page de composant qui montre tout cela, il cherche tout cela, il cherche Comme si xxx

pouvez-vous dire si j'ai laissé tomber cela? Pourquoi le bouton ne change pas l'état du magasin? TIA


0 commentaires

3 Réponses :


2
votes

deux problèmes ici. Vous appelez directement votre créateur d'action non ProPs.LoggedinChange CODE>

return{
   ...state,
   isLoggedIn : !state.isLoggedIn
}


3 commentaires

Merci, cela fonctionne parfaitement, voudriez-vous expliquer davantage s'il vous plaît? Tout d'abord, ce n'est pas le point de mon MapDispatchToprops pour pouvoir utiliser la fonction tout de suite que je faisais? Aussi pourquoi dois-je répandre l'état?


Sûr! Je mette à jour la réponse


Maintenant devrait avoir plus de sens



1
votes

REDUX STATE est immuable de sorte que vous devez renvoyer une nouvelle instance d'état, modifier votre état de réducteur en ci-dessous.

return Object.assign({}, state, {
         isLoggedIn: action.value
       });


0 commentaires

0
votes

Renvoie l'état avec la nouvelle valeur pour isloggedin code>. Utilisez le réducteur comme celui-ci:

case IS_LOGGED_IN_CHANGE:
  console.log(action);
  return {
    ...state,
    isLoggedIn: action.value
  };


0 commentaires