2016-07-01 14 views
4

Ich möchte die URL-Parameter innerhalb einer Redux-Middleware extrahieren, um eine Aktion zu versenden und diese Werte in der Nutzlast zu verwenden.Get URL-Params innerhalb einer Redux-Middleware mit React-Router

+0

Haben Sie Freude mit dem, was ich vorgeschlagen? –

+0

Danke für deinen Vorschlag, aber ich suche genau nach was ich gefragt habe. Wenn das nicht möglich ist, muss ich einen anderen Weg finden. Ich warte ein bisschen länger und wenn es 100% ist, dass wir keine Params von der URL extrahieren können, dann akzeptiere ich deine Antwort. – haxpanel

+0

Ich denke nicht, "die URL-Parameter innerhalb einer Redux Middleware zu extrahieren" macht Sinn. Kannst du mich auf die Dokumentation verweisen, in der du so etwas gesehen hast? –

Antwort

2

Um Ihr Ziel zu erreichen, können Sie redux-router

Diese Bibliothek ermöglicht es Ihnen, zu Ihrem Router Zustand in Ihrem Redux Speicher zu halten. Das Abrufen des aktuellen Pfadnamens, der Abfrage und der Parameter ist so einfach wie das Auswählen eines anderen Teils des Anwendungsstatus.

danach können Sie Ihre params von Middleware erhalten

export const someMiddleware = store => next => action=> { 
    /// get params 
    let params = store.getState().router.params; 

    ///then do what you want........... 
    next(action) 
}; 

MORE INFO

+0

Danke, ich sah auch am Redux-Router als die nächste Antwort dafür . Zum Glück, die genaue Lösung für mein Problem (hier: http://stackoverflow.com/questions/38145321/map-a-route-parameter-to-under-a-redux-stores-key) musste ich nicht zu ändern dieser Router. – haxpanel

1

Sie müssen innerhalb der Middleware nicht auf params zugreifen. Ein allgemeines Muster ist nur, um auf params über props in der Komponente zuzugreifen, von der Sie die Aktion versenden möchten.

Etwas wie folgt aus:

this.props.dispatch(yourAction(this.props.params)); 

Hinweis, die Sie benötigen, indem Sie react-redux Connect methoddispatch Verfügung, um Ihre Komponente zu machen. Zum Beispiel:

export default connect()(YourComponent); 
Verwandte Themen