В React есть несколько способов условно применять атрибуты класса в JSX в зависимости от определенных условий.
- Использование оператора условия:
class MyComponent extends React.Component {
render() {
const isActive = true
return <div className={isActive ? "active" : "inactive"}>My component</div>
}
}В этом примере мы определяем переменную isActive, которая устанавливается в значение true. В элементе div мы используем оператор условия, чтобы определить, какой класс применить к элементу в зависимости от значения isActive. Если isActive равно true, будет применен класс active, в противном случае - inactive.
- Использование оператора логического И:
class MyComponent extends React.Component {
render() {
const isActive = true
return <div className={isActive && "active"}>My component</div>
}
}В этом примере мы определяем переменную isActive, которая устанавливается в значение true. В элементе div мы используем оператор логического И, чтобы условно применить класс active к элементу, если isActive равно true. Если isActive равно false, класс active не будет применен.
- Использование библиотеки
classnames:
import classNames from "classnames"
class MyComponent extends React.Component {
render() {
const isActive = true
const classes = classNames("my-component", {
active: isActive,
})
return <div className={classes}>My component</div>
}
}В этом примере мы импортируем библиотеку classnames, которая позволяет более удобно управлять классами в JSX. Мы определяем переменную isActive, которая устанавливается в значение true. Мы используем метод classNames() из библиотеки classnames, чтобы создать строку с классами, которые будут применены к элементу. Мы передаем имя базового класса my-component и объект с ключом active, который определяет, должен ли быть применен класс active в зависимости от значения переменной isActive. Мы передаем строку с классами в атрибут className элемента div.
Это три способа условно применять атрибуты класса в JSX в React. Выберите тот, который наиболее подходит для вашего случая использования.