0
変数に文字列 'numpad'があることがわかったら、どのように簡単に同じ名前のコンポーネントをレンダリングできますか? Numpad、UnitList、ShiftListの各コンポーネントがあり、それらを個別にレンダリングしたい。私は私の子供のコールバックを作っている、私は私の親からレンダリングしたいコンポーネント(文字列)のタイプを返信します。次に、変数をnumpad、unitListまたはshiftListに設定してから、このコンポーネントをレンダリングします。書き込みスイッチよりも簡単な方法はありますか?スイッチで私はちょうどすることができます -より簡単で短くswitch-reactjsの代わりに
switch(type){
case 'numpad':
<Numpad .../>
break;
case 'unitList':
.....
}
しかし、私はもっと簡単で短いものを探しています。今の
私が持っている -
子のコンポーネントでrender(){
return(
<div>
<Child update={this.renderSomeComponent.bind(this)} />
{(() => {
switch (this.state.type) {
case "numpad": return <Numpad ../>;
case "unitList": return <UnitList ../>;
case "shiftList": return <ShiftList ../>;
case "sideList": return <SideList ../>;
default: return false;
}
})()}
</div>
)
}
renderSomeComponent(type){
this.setState({
type: type
})
}
私が持っている方法 - 一般的に
handleClick(){
this.props.update(this.props.type);
}
私はあなたがしようとしていることについてより多くのコードを共有するべきだと思います。それは明らかではありません。 – cdagli
OK、それを待ちます:D –
'this.state.type'はどこに設定しますか?あなたは 'rednerSomeComponent'をどのように使っていますか? –