Reagieren Redux verwenden-HOC mit der angeschlossenen Komponente
Ich bin in der Mitte meiner ersten Reagieren Nativen Projekt. Ich würde gern ein HOC, die sich rein mit der Synchronisierung von Daten von einer api. Dies würde dann wickeln Sie alle meine anderen Komponenten.
Wenn ich richtig bin meine DataSync
Komponente verbessern würde alle anderen Komponenten, indem Sie die folgenden in der export-Anweisung:
export default DataSync(SomeOtherComponent);
Dem Konzept bin ich mit zu kämpfen ist, dass SomeOtherComponent
hängt auch davon ab, Reagieren Redux Connect-Methode für das abrufen von anderen redux Zustand. Meine Frage ist, wie kann ich beide zusammen? So etwas wie das?
export default DataSync(connect(mapStateToProps, mapDispatchToProps)(SomeOtherComponent));
Vielleicht habe ich völlig falsch verstanden, das Konzept hier also ich würde wirklich zu schätzen einige Hinweise
BEARBEITEN
Weiter zu erklären:
Meine DataSync-HOC-würde rein handhaben, die Synchronisation von Daten zwischen der app und wäre die top-level-Komponente. Würde es brauchen, Zugang zu auth-Status und würden die Daten in Redux (in diesem Fall Bestellungen) für alle anderen Komponenten.
Komponenten verschachtelt die DataSync-HOC-Zugriff benötigen, um die abgerufenen Daten, Routen und diese wiederum erstellen Status (Aufträge) müssen synchronisiert werden zurück an den server in regelmäßigen Abständen.
- yep, das sollte funktionieren
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann sein, dass das, was Sie wollte:
DataSync.js
SomeOtherComponent.js
Verwenden
connect
auf Ihr Kind-Komponenten. Hier ist WARUMHier ist ein einfaches Beispiel, wie es funktioniert
Nützlich
HOC
linkJa,
connect
ist auchHOC
und Sie können nest Ihnen willkürlich, da eineHOC
gibt eine Komponente.HOC(HOC(...(Component)...))
ist OK.Jedoch, ich denken Sie, was könnten Sie brauchen, ist
connect(...)(DataSync(YourComponent))
stattDataSync(connect(...)(YourComponent))
so dassDataSync
könnte auch den Zugangstate
/props
wenn nötig. Es kommt ganz auf den use case.Ich verwenden und wie Sie den gleichen Ansatz, dass @Der Grund erwähnt. Das einzige problem hier ist, dass, wenn Sie die Zuordnung der Aktionen, die Sie nicht haben, dispatch() zur Verfügung.
Die Art und Weise, wie ich es geschafft, damit es funktioniert, falls jemand vor dem gleichen problem war das folgende.
Wo
withPreFetch(firstLoadAction, ConnectedComponentWithActions)
ist die-HOC-Annahme eine Aktion ausgelöst wird.