До сих пор, насколько мне известно о том, как свойства передаются от одного компонента к другому с помощью параметров следующим образомКак реагировать-маршрутизатор передает параметры другим компонентам через реквизит?
// старт: степень моего знания
Предположим, что существует определенная переменная состояния называется topic
в A.jsx. Я хочу передать это вниз B.jsx, поэтому я выполнить следующие
B = require('./B.jsx')
getInitialState: function() {return {topic: "Weather"}}
<B params = {this.state.topic}>
В B.jsx я могу после этого делать вещи, как
module.exports = React.createClass({
render: function() {
return <div><h2>Today's topic is {this.props.params}!</h2></div>
}
})
, который при призвал будет оказывать «Сегодняшняя тема это Погода! "
// Конец: Насколько мне известно
Теперь я иду через учебник по среагировать-маршрутизатор со следующими фрагментами кода
topic.jsx:
module.exports = React.createClass({
render: function() {
return <div><h2>I am a topic with ID {this.props.params.id}</h2></div>
}
})
маршруты .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>
})
}
где this.state.topics
- это список тем, взятых из API imgur через Reflux.
Мой вопрос: каким механизм params
передаваемый в props
для topic.jsx? Нигде в коде я не вижу идиомы, выраженной в вышеприведенном разделе, о «степени моих знаний», а именно: нет <Topic params = {this.state.topics} />
в любом из путей.jsx или header.jsx. Ссылка на full repo here. В документах React-router говорится, что параметры «parsed out of the original URL's pathname». Это не вызвало у меня резонанса.
спасибо за этот ответ. Мне всегда любопытно, как нужно копать под капотом для таких вещей. было ли это по опыту, или вы нашли его в документах? если да, то можете ли вы указать мне точное местоположение? – thetrystero
Я только что выкопал реализацию: https://github.com/rackt/react-router/tree/master/modules –
работает нормально, но по этому URL-адресу все ссылки и скрипты становятся 404. Пожалуйста, помогите – Anil