Я не совсем уверен, что получаю вопрос, но, глядя на ваш код, я думаю, что ответ - да.
Это:
<div className={this.state.type+'-logo-'+this.state.themeType+' m-0-auto'}>
может быть достигнуто с помощью шаблона JavaScriptliteral.
Ресурс: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals).
Синтаксис использует обратные метки для окружения любого сочетания переменных JavaScript и фиксированного строкового текста, может выглядеть так:
<div className={`${this.state.type}-logo-${this.state.themeType}m-0-auto`}>
часть, к которой может потребоваться некоторое время, чтобы привыкнуть, состоит в том, что ваши переменные окружены ${
и }
.Иногда это немного затрудняет чтение, но позволяет создавать все виды динамических стилей.
Следующий уровень возможностей связан с возможностью выполнять любую логику внутри выражений в строке шаблона.Вы можете делать что-то вроде этого:
<div className={`${this.state.type === 'dark' ? 'dark-theme' : 'default-theme'}-logo-${this.state.themeType}m-0-auto`}>
, где вы динамически выводите то, что вы хотите, основываясь на ваших данных.