2017-11-04 4 views
2

Ich habe reagieren App mit Versionen wenig alten Router und Reflux mit reagieren. Wir haben eine Tabelle und eine Suchschaltfläche. Wenn auf die Schaltfläche "Suchen" geklickt wird, wird eine AJAX-Anfrage gestellt, um die Ergebnisse zu erhalten. Zu diesem Zeitpunkt muss ich die Suchergebnisabfrage an die URL anhängen, damit Benutzer sie als Lesezeichen speichern können.Reagieren Router - Ajax Deeplinken

Ich weiß, mit "window.location.hash", können wir Abfrage params an Browser-URL anhängen. Ich wollte "#" vermeiden. Aber

ist es eine Möglichkeit, im Router-Reagieren dies zu erreichen?

Antwort

0

Wenn Sie Benutzer ein Lesezeichen erstellen möchten die Suchabfrage, können Sie reagieren-Router mit anderen Weg für den Query Ergebnisseite, wo Tabelle mit Daten wiedergegeben wird.

render() { 
    <Route path='/search/:query' component={TableWithData}/> 
} 

TableData ist eine reaktive Komponente, die Daten in der Tabelle anzeigt. Der React-Router kümmert sich um die Änderung der URL (ohne Hash), und Benutzer können Links mit einem Lesezeichen versehen, wenn sie dies möchten.

+0

Dank für die Antwort. Ich kann mit "this.history.pushState" an die URL des Browsers anhängen. –

+0

Wenn Sie encodeURI ("eine Zeichenfolge") verwenden, scheint pushState keine codierte URL im Browser hinzuzufügen. –

+0

Warum müssen Sie auf this.history.push drücken? Sie können verwenden - . Kannst du Proto-Code zeigen? –