Bisher das Ausmaß meines Wissens darüber, wie Eigenschaften von einer Komponente zur anderen über Parameter übergeben werden, wird wie folgtWie reagiert react-router Params über Requisiten an andere Komponenten?
// beginnen: Umfang meines Wissens
Angenommen, einige Zustandsvariablen gibt es topic
genannt in A.jsx. Ich will das B.jsx zu überliefern, so führe ich die folgende
B = require('./B.jsx')
getInitialState: function() {return {topic: "Weather"}}
<B params = {this.state.topic}>
In B.jsx kann ich dann Sachen wie
module.exports = React.createClass({
render: function() {
return <div><h2>Today's topic is {this.props.params}!</h2></div>
}
})
tun das, wenn es aufgerufen wird „Das heutige Thema machen ist Wetter! "
// Ende: Umfang meines Wissens
Jetzt, ich bin mit dem folgenden Code auf reagieren-Router über ein Tutorial geht Schnipsel
topic.jsx:
module.exports = React.createClass({
render: function() {
return <div><h2>I am a topic with ID {this.props.params.id}</h2></div>
}
})
Routen .jsx:
var Topic = require('./components/topic');
module.exports = (
<Router history={new HashHistory}>
<Route path="/" component={Main}>
<Route path = "topics/:id" component={Topic}></Route>
</Route>
</Router>
)
header.jsx:
wo this.state.topics
ist eine Liste der Themen, die von der imgur API über Reflux gezogen werden.
Meine Frage ist: durch welchen Mechanismus wird params
übergeben zu props
für topic.jsx? Nirgendwo im Code sehe ich ein Idiom, wie es im obigen Abschnitt über den "Umfang meines Wissens" zum Ausdruck kommt. Es gibt keine <Topic params = {this.state.topics} />
in entweder routes.jsx oder header.jsx. Link zum full repo here. React-Router-Dokumente sagen, dass params "parsed out of the original URL's pathname" ist. Das hat bei mir nicht mitgespielt.
danke für diese antwort. Ich bin immer neugierig, wie man unter solchen Dingen graben muss. War das aus Erfahrung, oder haben Sie es in der Dokumentation gefunden? Wenn ja, kannst du mich bitte auf den genauen Standort verweisen? – thetrystero
Ich graben gerade durch die Implementierung an: https://github.com/rackt/react-router/tree/master/modules –
es funktioniert gut, aber auf dieser URL werden meine alle Links und Skripte 404. Bitte helfen – Anil