React Router의 핸들러 구성요소에 Prop 전달
React Router에서는 Props를 핸들러 구성요소에 전달하는 것이 일반적인 요구 사항입니다. 다음 구조를 고려하세요.
var Dashboard = require('./Dashboard'); var Comments = require('./Comments'); var Index = React.createClass({ render: function () { return ( <div> <header>Some header</header> <RouteHandler /> </div> ); } }); var routes = ( <Route path="/" handler={Index}> <Route path="comments" handler={Comments}/> <DefaultRoute handler={Dashboard}/> </Route> ); ReactRouter.run(routes, function (Handler) { React.render(<Handler/>, document.body); });
Prop를 직접 전달
전통적으로는 다음과 같이 Comments 구성 요소에 Prop을 직접 전달했습니다.
<Comments myprop="value" />
React Router를 통해 Prop 전달
그러나 React Router에서는 Prop이 Route의 컴포넌트 Prop을 통해 전달되어야 합니다. 이를 수행하는 방법에는 두 가지가 있습니다:
1. 래퍼 구성 요소 사용
핸들러 구성 요소를 감싸는 래퍼 구성 요소를 만듭니다.
var RoutedComments = React.createClass({ render: function () { return <Comments {...this.props} myprop="value" />; } });
그런 다음 경로에서 Comments 구성 요소 대신 RoutedComments 구성 요소를 사용합니다.
<Route path="comments" handler={RoutedComments}/>
2. 경로 속성과 함께 클래스 구성 요소 사용
React.Component에서 확장되는 클래스 구성 요소를 정의하고 구성 요소 소품을 사용합니다.
class Index extends React.Component { constructor(props) { super(props); } render() { return ( <h1> Index - {this.props.route.foo} </h1> ); } } var routes = ( <Route path="/" foo="bar" component={Index}/> );
위 내용은 React Router의 핸들러 구성 요소에 소품을 어떻게 전달할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!