2016-10-25 9 views
1

Ich habe Probleme mit reaction/redux.Daten über React Router an Komponenten übergeben

Eine meiner letzten Herausforderungen bestand darin, einige Daten von Child-Komponente zu Parent-Komponente zu übergeben. Ich konnte nicht das Kind props durch den Aufruf von parentComponent.props.children.props (Ich habe auch versucht, Kinder mit React.Children.toArray zu Array konvertieren) und dann fand ich eine Lösung für mein spezifisches Problem beim Lesen einiger Daten, die mit React Router kommt .

Ich habe es geschafft, die untergeordnete Komponente zu ermitteln, indem Sie this.props.location.pathname in übergeordnete Komponente aufrufen.

Ich habe eine Routing-Struktur wie folgt

<Router history={history}> 
     <Route path="/main" component={Main}> 
     <Route path="something" component={Something} /> 
     </Route> 
</Router> 

Ich frage mich, ob es möglich ist, einige Daten zum in dieser Erklärung zu übergeben. Etwas wie:

<Route path="something" component={Something} data={foo: 'myData'} /> 

Und bekommen foo im Main.render

Gibt es etwas in der Nähe das?

Antwort

1

Alle Requisiten, die Sie an die Routendefinition übergeben, sind unter dem Routenknoten in den Requisiten zugänglich. In Ihrer Something-Komponente sollte in der Lage sein, die Daten Prop mit this.props.route.data

+0

gibt es keine 'this.props.route.data' für mich. Ich kann sehen, was ich in 'this.props.route.childRoutes [#] ['myPropsName']' als Requisiten übergebe –

2

zu erhalten Sie können "myData" als Abfrageparameter übergeben. Dies ist meine persönliche Vorliebe für die Weitergabe von Requisiten an eine Komponente mit React Router. Wenn Sie dann zu /main/something?foo=myData navigieren, können Sie auf foo von this.props.location.query.foo zugreifen.

Verwandte Themen