2016-04-16 5 views
0

Mit Hapi und React, was wäre der beste Weg, um Datenserver Seite zu holen, um Ihre Ansichten zu generieren?Fetch Datenserver Seite vor der Rückgabe

Ich verwende derzeit Elasticsearch als meine Datenquelle und Abfrage mit der Bibliothek request, aber Javascripts asynchrone Natur gegeben, die Daten werden nie rechtzeitig geladen, wie kann ich dann Daten geladen werden, bevor ich die Ansicht zurückgeben?

+1

ich weiß nicht, die '' 'request''' Bibliothek, aber ich könnte mir vorstellen, Sie müssen nur Ihre Standard-Komponente in einem Erfolg Callback-Funktion Reagieren erstellen, nachdem Das request.get() wird abgeschlossen. –

Antwort

0

Ich würde Daten aus dem Hapi-Server erhalten und dann verwenden, um Ihre Sicht zu füllen, in Ihrem Fall reagieren. Ich würde Daten von externen http Quelle in einem Pre-Handler bekommen, die dann von der Ansicht verwendet werden können. Sie können module.exports nicht verwenden, um einen asynchronen Kontext zu exportieren, da "require" synchron ist.

-1

React sollte über die Aktualisierung seiner Abhängigkeitswerte irgendwie benachrichtigt werden.

React-Komponenten sind abhängig von props und state und Dinge außerhalb des Geltungsbereichs.

  • props in der Komponente kann nur geändert werden, wenn übergeordnete Komponente neue Requisiten
  • state
  • Objekt passieren kann aktualisiert werden .setState
  • globals (alles außer props und state) Element Reagieren aktualisieren können:
    • Kopieren Sie es in state und aktualisieren Sie es mit einigen Subskriptionsmethoden in globals.
    • seine Werte Verwenden Sie direkt und .forceUpdate auf Komponente aufrufen, wieder von
    • rerender Stammkomponente mit neuen props

In Ihrem Fall globalen Updates abonnieren ich Ihnen rate eines zu verwenden, die folgenden:

  • Verwendung Kefir.js (oder ähnlich) und bindObservable Aktuelles zu Requisiten
  • Setzen Sie solche Abfragen in root component
  • Verwenden Redux oder ReFlux und suchen Sie nach Anleitungen, wie Daten synchron mit getan Bibliotheken
Verwandte Themen