Context का उपयोग करने का विकल्प भी है। मार्ग घटकों में राउटर ऑब्जेक्ट तक पहुंच प्रदान करने के लिए प्रतिक्रिया-राउटर इस पर निर्भर करता है।
मैं जल्दी से एक साथ एक उदाहरण codepen पर संदर्भों का उपयोग कर रख:
एक और
answer मैं एक ऐसी ही सवाल पर दिया से
। MainLayout
कुछ गुणों को परिभाषित करता है जिनका उपयोग बच्चों द्वारा संदर्भ का उपयोग करके किया जा सकता है: users
और widgets
। इन गुणों का उपयोग UserList
और WidgetList
घटकों द्वारा किया जाता है। ध्यान दें कि contextTypes
ऑब्जेक्ट में संदर्भ से उन्हें क्या पहुंचने की आवश्यकता है, उन्हें परिभाषित करने की आवश्यकता है।
var { Router, Route, IndexRoute, Link } = ReactRouter
var MainLayout = React.createClass({
childContextTypes: {
users: React.PropTypes.array,
widgets: React.PropTypes.array,
},
getChildContext: function() {
return {
users: ["Dan", "Ryan", "Michael"],
widgets: ["Widget 1", "Widget 2", "Widget 3"]
};
},
render: function() {
return (
<div className="app">
<header className="primary-header"></header>
<aside className="primary-aside">
<ul>
<li><Link to="/">Home</Link></li>
<li><Link to="/users">Users</Link></li>
<li><Link to="/widgets">Widgets</Link></li>
</ul>
</aside>
<main>
{this.props.children}
</main>
</div>
)
}
})
var Home = React.createClass({
render: function() {
return (<h1>Home Page</h1>)
}
})
var SearchLayout = React.createClass({
render: function() {
return (
<div className="search">
<header className="search-header"></header>
<div className="results">
{this.props.children}
</div>
<div className="search-footer pagination"></div>
</div>
)
}
})
var UserList = React.createClass({
contextTypes: {
users: React.PropTypes.array
},
render: function() {
return (
<ul className="user-list">
{this.context.users.map(function(user, index) {
return <li key={index}>{user}</li>;
})}
</ul>
)
}
})
var WidgetList = React.createClass({
contextTypes: {
widgets: React.PropTypes.array
},
render: function() {
return (
<ul className="widget-list">
{this.context.widgets.map(function(widget, index) {
return <li key={index}>{widget}</li>;
})}
</ul>
)
}
})
var Routes = React.createClass({
render: function() {
return <Router>
<Route path="/" component={MainLayout}>
<IndexRoute component={Home} />
<Route component={SearchLayout}>
<Route path="users" component={UserList} />
<Route path="widgets" component={WidgetList} />
</Route>
</Route>
</Router>;
}
})
ReactDOM.render(<Routes/>, document.getElementById('root'))
स्रोत
2016-03-07 07:37:47
की संभावित डुप्लिकेट [कैसे करने के लिए रंगमंच की सामग्री पारित करने के लिए {this.props.children}] (http://stackoverflow.com/questions/32370994/how-to-pass-props-to-this-props- बच्चे) –