Мне интересно, как это сделать в JSX. Если вы посмотрите на приведенный ниже код, есть дублированные части, где <div className={`${cssComponentName}-container`}>
используется для обертывания JSX. Как это сделать за пределами цикла if/else и одного оператора return, не сталкиваясь с проблемой «единого корня» с JSX.Как объединить JSX, не сталкиваясь с проблемой «одного корня» с JSX
buildComponent() {
const { element: {title, type, items }, name } = this.props;
const cssComponentName = name.toLowerCase();
if (type === 'string' || type === 'number') {
return (
<div className={`${cssComponentName}-container`}>
<label htmlFor={name}>{title}</label>
<input type="text" name={name} />
</div>
);
}
if (type === 'array') {
return (
<div className={`${cssComponentName}-container`}>
<label htmlFor={name}>{title}</label>
<select name={name}>
{ this.buildDropdown(items.enum, items.enumNames) }
</select>
</div>
);
}
}