теле JSX написать такое условие
let level = 0;
if(level === 0) {
console.log('No nest')
} if (level === 1) {
console.log('Nested level 1')
} if (level === 2) {
console.log('Nested level 2')
}
На обычном if else это изи, но как на тернарке захерачить?
тернарный оператор не вызывает ничего, а возвращает значение в зависимости от условия. Соответственно тернарник должен что-то возвратить в переменную (например тело функции), а функция из переменной дальше должна вызваться и выполнить все что тебе нужно
ты имеешь ввиду так console.log(level === 0 ? 'No nest' : level === 1 ? 'Nested level 1' : level === 2 ? 'Nested level 2' : null)
для таких людей горит отдельный котел)
ой, бля, не начинай
да, спасибо!
бахни switch
это вообще извращенный свитч
ну а как внутри JSX иначе условия писать ?
ты можешь до метода рендер что-то сохранять в переменную в зависимости от условия, а в сам jsx закидывать только свою переменную, это повысит читаемость
Сейчас деды научат, забей , хд )
Ну, если level может быть любым, а не только 0, 1 и 2 – console.log(!level ? 'No nested' : `Nested level ${level}`)
ну вот я так и сделал, заранее, перед рендером записываю в переменную level значение от 1 до 2. В самом JSX мне нужно вывести определённые данные в зависимости от того что в level 0,1 или 2.
только 0, 1 или 2)
но спасибо
Вот более изящный и гибкий пример в одну строку. //level - число (нужно его скастить в строку) // создаешь конфиг в отдельном пакете и файле export const levelConfig = (props) => { return { ['0']: <AnyComponent {...props} />, ['1']: <AnyComponent {...props} />, ['2']: <AnotherAnyComponent {...props} />, }; }; //пример использования в jsx. В зависимости от level будет рендерится нужный компонент через конфиг <div> { levelConfig(props)[level] } </div>
интересно, спасибо!
Обсуждают сегодня