Il existe actuellement un scénario : des sous-composants profondément imbriqués (composants d'affichage) doivent déclencher des actions (telles que des sauts d'itinéraire), et vous souhaitez éviter de transmettre couche par couche les méthodes de création d'action ou de répartiteur associées. Alors je veux faire ceci :
Définissez l'instance du magasin redux en tant qu'objet global, c'est-à-dire global.store = store, puis store.dispatch() peut être utilisé n'importe où et à tout moment
.Cela signifie que la méthode mapDispatcherToProps de react-redux n'est plus utilisée.
Y a-t-il des problèmes ou des pièges à faire cela ?
Cela va évidemment à l'encontre de l'intention initiale de la conception redux. Tout composant peut modifier son état via le magasin global. Il est recommandé de placer le déclencheur d'action dans le composant racine Comme pour les composants profonds, le composant racine peut être notifié via des événements, puis le composant déclenche l'action. Deuxièmement, il n'est généralement pas recommandé de dépasser le niveau d'imbrication des composants. 3 niveaux. Vous pouvez déterminer si c'est vrai. Il est nécessaire d'utiliser la forme de composants parent-enfant et si les pièces peuvent être remplacées par des composants frères.
Cette approche fonctionne logiquement, mais le principal écueil réside dans le rendu côté serveur.
Si vous effectuez un rendu côté serveur, le serveur a besoin de son propre magasin pour le rendu