В React ты не можешь использовать фигурные скобки внутри кавычек, потому что они будут обработаны как обычный текст, а не как JavaScript-выражение. Это частая ошибка при попытке применить условные классы.
<div className="btn-panel {this.props.visible ? 'show' : 'hidden'}">
Фигурные скобки в кавычках будут восприняты как простая строка, а не как код JavaScript.
Есть два рекомендуемых подхода:
Перенеси фигурные скобки за пределы кавычек и используй тернарный оператор со склейкой строк:
<div className={'btn-panel ' + (this.props.visible ? 'show' : 'hidden')}>
Важно: Добавь пробел между 'btn-panel ' и условным выражением, чтобы правильно разделить имена классов.
Используй шаблонные строки (обратные кавычки) для более чистого синтаксиса:
<div className={`btn-panel ${this.props.visible ? 'show' : 'hidden'}`}>
Этот подход обычно предпочтительнее, потому что:
Атрибут className в React должен использовать JavaScript-выражения в фигурных скобках. Никогда не вкладывай фигурные скобки в кавычки — перенеси их за пределы и используй корректный синтаксис JavaScript, чтобы вычислить условия и собрать строку классов.
Когда ты используешь фигурные скобки внутри строки в React атрибуте className, выражение внутри будет вычислено как JavaScript код и применено условно.
Новый — ещё не проверен сообществом
Вы