2017-03-15 17 views
0

状況:ReactJS:二つの小道具やチェックpropType

<Component> 
    child 
</Component> 

私は何をしたい:

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

問題:

私は一つだけpropTypeを指定することができますか? 2つの異なるpropypeを1つにする方法はありますか?

ありがとうございます!

+0

あなたが合格しようとしている小道具の種類をより明確だろうか? – Shota

+1

おそらく[** this **](http://stackoverflow.com/a/40302064/2030321)があなたに役立つかもしれませんか? – Chris

+0

ファンクションタイプとノードタイプを1つの指定された小道具位置に渡そうとしています – 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

ええ、それは動作しますが、PropTypeも設定したいと思っています。私が2種類の小道具を持っていれば、どうすればいいですか? – Daltron

+0

@Daltron私は自分の答えを更新しました - はい、複数のpropypeを持つことができます – icc97

+0

素晴らしい仕事です、ありがとう! – Daltron

関連する問題