dotąd zakres mojej wiedzy o tym, jak właściwości są przekazywane od jednego elementu do drugiego za pomocą parametrów jest następującaW jaki sposób router reagujący przekazuje parametry do innych komponentów za pomocą rekwizytów?
// start: zakres mojej wiedzy
Załóżmy, że istnieje jakiś zmienną stanu nazywa topic
w A.jsx. chcę przekazać to w dół do B.jsx, więc wykonać następujące
B = require('./B.jsx')
getInitialState: function() {return {topic: "Weather"}}
<B params = {this.state.topic}>
W B.jsx mogę wtedy zrobić rzeczy jak
module.exports = React.createClass({
render: function() {
return <div><h2>Today's topic is {this.props.params}!</h2></div>
}
})
który po wezwany odda „Dzisiejszy temat jest Pogoda! "
// Koniec: zakres mojej wiedzy
Teraz idę przez tutorial reagować-router z następującym kodem fragmenty
topic.jsx:
module.exports = React.createClass({
render: function() {
return <div><h2>I am a topic with ID {this.props.params.id}</h2></div>
}
})
trasy .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:
renderTopics: function() {
return this.state.topics.map(function(topic) {
return <li key = {topic.id} onClick={this.handleItemClick}>
<Link to={"topics/" + topic.id}>{topic.name}</Link>
</li>
})
}
gdzie this.state.topics
jest listą tematów zaczerpniętych z API imgur za pośrednictwem Reflux.
Moje pytanie brzmi:: przez co mechanizm params
przekazany do props
dla topic.jsx? Nigdzie w kodzie nie widzę idiomu wyrażonego w powyższej sekcji na temat "zakresu mojej wiedzy". nie ma numeru <Topic params = {this.state.topics} />
w pliku routes.jsx lub header.jsx. Link do full repo here. Dokumentacja routera React mówi, że parametrami są "parsed out of the original URL's pathname". To nie rezonowało ze mną.
dziękuję za tę odpowiedź. Zawsze jestem ciekawa, jak ktoś robi kopanie pod maską takich rzeczy. Czy było to z doświadczenia, czy znalazłeś to w dokumentach? jeśli tak, czy możesz wskazać mi dokładną lokalizację? – thetrystero
Właśnie przeszedłem przez implementację pod adresem: https://github.com/rackt/react-router/tree/master/modules –
działa dobrze, ale pod tym adresem wszystkie moje linki i skrypty stają się 404. Proszę o pomoc – Anil