Réagir Redux utilisation HOC avec le composant connecté
Je suis au milieu de ma première Réagir Natif de projet. Je voudrais créer un HOC qui traite uniquement avec la synchronisation des données à partir d'une api. Ce serait alors de l'emballage de tous mes autres composants.
Si je suis bon mon DataSync
composant permettrait d'améliorer tous les autres composants en procédant comme suit dans la déclaration d'exportation:
export default DataSync(SomeOtherComponent);
Le concept, je suis mal, c'est que SomeOtherComponent
dépend aussi de Réagir Redux méthode de connexion pour récupérer d'autres redux de l'état. Ma question est comment puis-je utiliser les deux ensemble? Quelque chose comme ceci?
export default DataSync(connect(mapStateToProps, mapDispatchToProps)(SomeOtherComponent));
J'ai peut-être complètement mal compris le concept ici, donc je voudrais vraiment l'apprécier certains pointeurs
MODIFIER
D'expliquer davantage:
Mon DataSync HOC serait purement gérer la synchronisation des données entre l'application et ce serait le top niveau de la composante. Il aurait besoin de l'accès à l'authentification de l'état et les données dans Redux (dans ce cas les commandes) pour tous les autres composants.
Composantes imbriquées à l'intérieur des DataSync HOC ont besoin d'accéder aux données récupérées, les routes et à leur tour, créer de l'état (décrets), qui doivent être synchronisés sur le serveur périodiquement.
OriginalL'auteur mtwallet | 2016-11-29
Vous devez vous connecter pour publier un commentaire.
Peut-être que c'est ce que tu voulais:
DataSync.js
SomeOtherComponent.js
Utilisation
connect
sur votre enfant aussi bien des composants. Voici POURQUOIOriginalL'auteur free-soul
Voici un exemple simple comment il fonctionne
Utile
HOC
lienOriginalL'auteur The Reason
Oui,
connect
est égalementHOC
et vous pouvez imbriquer arbitraire depuis unHOC
retourne un composant.HOC(HOC(...(Component)...))
est OK.Cependant, je pense que ce que vous pourriez avoir besoin est
connect(...)(DataSync(YourComponent))
au lieu deDataSync(connect(...)(YourComponent))
de sorte queDataSync
pourrait également avoir accès àstate
/props
si nécessaire. Cela dépend vraiment du cas d'utilisation.pouvez-vous élaborer un peu plus sur votre question? DataSync seulement hérite de se connecter si elle est imbriquée dans connect. Chaque imbriquée HOC1 hérite de tous les extérieurs HOC2,3,4.. au-dessus d'elle. HOC3(HOC2(HOC1)) Maintenant HOC1 hérite de HOC2 et HOC3.
OriginalL'auteur Lyubomir
Que j'utilise et que la même approche que @La Raison mentionnée. Le seul problème ici est que si vous mappez vos actions, vous n'aurez pas de dispatch() disponible.
La façon dont j'ai réussi à le faire fonctionner dans le cas où une personne est confrontée au même problème était le suivant.
Où
withPreFetch(firstLoadAction, ConnectedComponentWithActions)
est le HOC à l'acceptation d'une action à être expédiés.OriginalL'auteur Ventura