2016-04-07 94 views
1

可以通過你的道具傳遞了兒童你可以通過一個組件通過道具兒童

var TaskForm = require('../../../../components/assessment/tasks/TaskForm.react'); 

render: function() { 
    return (
     <div> 
      <div className="row"> 
       <div className="col-xs-12 col-lg-12"> 
        <GroupsItemsAccordionWrapper 
         TaskForm=TaskForm 
        /> 
       </div> 
      </div> 
     </div> 
    ); 
} 
+0

是的,你可以傳遞任何值作爲道具。 – Pavlo

+0

但你如何以正確的方式做到這一點? – morne

回答

2

是的,你可以傳遞任何值作爲道具,包括React.createClass(又名組件類)返回的對象。假設你正在實現依賴注入:

var TaskForm = React.createClass({ 
    render: function() { 
    return (
     <div>{this.props.children}</div> 
    ); 
    } 
}); 

var GroupsItemsAccordionWrapper = React.createClass({ 
    render: function() { 
    var TaskForm = this.props.TaskForm; 
    return (
     <div> 
      <TaskForm>Hello, world!</TaskForm> 
     </div> 
    ); 
    } 
}); 

ReactDOM.render(
    <GroupsItemsAccordionWrapper TaskForm={TaskForm} />, 
    document.getElementById('container') 
); 

(注意周圍TaskForm={TaskForm}大括號)。

演示:https://jsfiddle.net/69z2wepo/37477/

2

你可以做到這一點像:

var DivWrapper = React.createClass({ 
    render: function() { 
     return <div>{ this.props.child }</div>; 
    } 
}); 

var Hello = React.createClass({ 
    render: function() { 
     return <div>Hello {this.props.name}</div>; 
    } 
}); 

//創建您組件

var comp = <Hello name="World" /> 
ReactDOM.render(<DivWrapper child={ comp }/>, document.body); 

並使用{ this.props.child }來渲染組件

的jsfiddle這裏:https://jsfiddle.net/5c4gg66a/