J'ai implémenté redux dans une application React, mais je suis confus quant à cette syntaxe:

connect(mapState)(MyComponent)

Pourquoi le deuxième paramètre doit-il être placé entre accolades si les deux sont passés pour se connecter?

-2
seventeen 7 nov. 2019 à 18:30

2 réponses

Meilleure réponse

Vous êtes donc probablement habitué à la syntaxe. Seulement, vous voyez tout en une seule étape Pensez-y de cette façon qui est équivalente;

const enhancer = connect(mapState);
const YourConnectedComponent = enhancer(MyComponent);

C'est donc la même chose si vous au lieu d'allouer le résultat de la connexion dans une variable, vous l'utilisez directement car c'est une fonction que vous le verriez comme:

const YourConnectedComponent = connect(mapState)(MyComponent)
2
jstuartmilne 7 nov. 2019 à 15:37

Techniquement, votre composant sera connecté une fois au magasin redux:

  1. connect a été appelé avec la variable mapStateToProps qui retourne une fonction
  2. après cette fonction sera appelée avec le paramètre MyComponent passé.

Dans la redux documentation:

La fonction connect () connecte un composant React à un magasin Redux. Il fournit à son composant connecté les éléments de données dont il a besoin depuis le magasin et les fonctions qu'il peut utiliser pour envoyer des actions au magasin.

De cette façon, redux gérera automatiquement les props changements d'état dans votre composant.

1
norbitrial 7 nov. 2019 à 15:39