2017-03-15 45 views
0

現狀:ReactJS:兩個道具和檢查propType

<Component> 
    child 
</Component> 

我想做的事:

<Component> 
<div></div> 
{this.function()} // loads array of components 
</Component> 

問題:

我只能指定一個propType?我怎樣才能讓兩個不同的propType成爲一個?

謝謝!

+0

你能更清楚你想傳遞什麼樣的道具嗎? – Shota

+1

也許[** this **](http://stackoverflow.com/a/40302064/2030321)可能對您有所幫助? – Chris

+0

我試圖將func類型和節點類型傳入一個指定的prop位置 – Daltron

回答

1

我相信你想要做的應該沒問題。請參閱從Meteor react tutorial此代碼:

renderTasks() { 
    return this.getTasks().map((task) => (
    <Task key={task._id} task={task} /> 
)); 
} 

render() { 
    return (
    <div className="container"> 
     <header> 
     <h1>Todo List</h1> 
     </header> 

     <ul> 
     {this.renderTasks()} 
     </ul> 
    </div> 
); 
} 

你可以很容易地修改render()是:

render() { 
    return (
    <div className="container"> 
     <header> 
     <h1>Todo List</h1> 
     </header> 

     <ul> 
     <Task task={this.props.myTask} /> 
     {this.renderTasks()} 
     </ul> 
    </div> 
); 
} 

編輯:在回答your comment - 是的,你可以指定備用PropTypes兒童。看到這個other answer

static propTypes = { 
    children: React.PropTypes.oneOfType([ 
     React.PropTypes.arrayOf(React.PropTypes.node), 
     React.PropTypes.node 
    ]).isRequired 
} 
+0

是的,它可以工作,但我也想設置PropTypes。如果我有兩種不同類型的道具,我該怎麼做? – Daltron

+0

@達隆我更新了我的答案 - 是的,你可以有多種propTypes – icc97

+0

偉大的工作,謝謝! – Daltron