Когда я знаю, что в переменной есть строка numpad, как я могу сделать простой компонент рендеринга с тем же именем? У меня есть компоненты Numpad, UnitList, ShiftList, и я хочу сделать их индивидуально. Я делаю обратный вызов в своем дочернем элементе, и я возвращаю тип компонента (string), который я хочу отобразить из моего родителя. Затем я устанавливаю свою переменную в 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
Хорошо, подождите: D –
Где вы устанавливаете 'this.state.type'? У ребенка, как вы используете 'rednerSomeComponent'? –