React Router App - Route Titel

8

Ich lerne Reagieren und verwende React-Router . Die App, die ich erstelle, ist eine App im mobilen Stil mit einem oberen Navigationsmenü und einem Inhaltsbereich darunter. Während ich auf den App-Seiten navigiere, möchte ich einen Seitentitel zur Menüleiste hinzufügen, um zu ermitteln, auf welcher Seite Sie gerade sind.

Meine Routen:

%Vor%

HomePage.render:

%Vor%

NavigationMenu.render:

%Vor%

Mein Problem

Die untergeordneten Pfade zu HomePage müssen ihren Titel basierend auf Inhalt festlegen, der von einem Ajax-Aufruf zurückgegeben wird.

Ich hatte gedacht, Callbacks zu jeder Route hinzuzufügen und Titel an die Elternklasse zurückzuleiten, die wiederum diese Daten an das NavigationMenu weitergeben könnte. Leider funktioniert das nicht: Während Sie durch die Seiten navigieren, ist die einzige Funktion, die wiederholt aufgerufen wird, rendern . Wenn Sie hier den Status setzen, wird ein Invariant Violation -Fehler ausgelöst.

Meine Fragen

  • Gibt es eine bessere Möglichkeit, den Titel zu verwalten?
  • Gibt es Alternativen zum Verfolgen der aktuellen Seite, anstatt sich darauf zu verlassen, dass die routes-Funktion jedesmal Daten an einen Callback weitergibt (das scheint schmutzig zu sein)?
Ashley 'CptLemming' Wilson 01.10.2014, 00:16
quelle

2 Antworten

8

Ich konnte dies mithilfe des React Flux -Musters lösen und mein App-Layout neu organisieren.

Titelkomponente:

%Vor%

Seiten- / Inhaltskomponenten folgen dieser Struktur:

%Vor%

Dies ermöglicht es Komponenten zu laden, einen Titel dynamisch zu setzen und nur die Titel-Komponente zu aktualisieren, wenn die App gut und fertig ist! Geschickt!

    
quelle
4

Wie Jeff Fairley oben vorgeschlagen hat, hilft die Verwendung von Reflux dabei, dieses Problem zu beheben (dieser Code verwendet ES6-Funktionen, daher wird ein Transpiler benötigt, um ihn auszuführen):

Titelaktionen

%Vor%

TitleStore

%Vor%

Navigationsmenü

%Vor%

Meine Komponente

%Vor%

Ziel ist es, einen reibungslosen unidirektionalen Datenfluss zu erhalten:

%Vor%     
Jan Klimo 11.11.2015 16:32
quelle

Tags und Links