Как написать условие if с двумя операторами в React Native

Я просто смущен тем, как сопоставить два оператора, например if else из JavaScript, в React Native

например,

if (array.length != null && array.length >= 2){
    alert("Array Is Greater Than 2")
}else if (array.length != null ){
    alert("Array Is Less Than 2")
}else{
    alert("Array is null")
}

Я знаю, как передать условие signle в React Native, например

например,

{
    array.length != null &&
    <View>
        /* Content Here */
    </View>
}

или же

{
    array.length != null ?
    <View>
        /* If Content Here */
    </View>
    :
    <View>
        /* Else Content Here */
    </View>
}

Но как мне создать такое состояние, как первое?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
4
0
15 103
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

У вас могут быть вложенные тернарные условия, но я не буду предлагать этого, потому что это будет не так удобно для чтения. Другой вариант - вы можете поместить все эти условия внутри функции и вызвать эту функцию из метода рендеринга.

Как это:

renderElement () {
    if (array.length != null && array.length >= 2){
        alert("Array Is Greater Than 2");
        return <p>If condition</p>;
    }else if (array.length != null ){
        alert("Array Is Less Than 2");
        return <p>If-Else condition</p>;
    }else{
        alert("Array is null");
        return <p>Else condition</p>;
    }
}

render () {
    const element = this.renderElement();
    // now you can use element to render that element at any place
}

Вложенные тернарные условия:

{
    array.length != null && array.length >= 2 ?
        <View>
            /* Array Is Greater Than 2 */
        </View>
    :
        array.length != null?
            <View>
                /* Array Is Less Than 2 */
            </View>
        :
            <View>
                /* Array Is Null */
            </View>
}

Большое спасибо за ваши усилия, так как я нашел, что вложенный тройной способ более удобен для меня. Поддерживаю ваш ответ за помощь.

Kirankumar Dafda 10.07.2018 12:18
Ответ принят как подходящий

У вас может быть вложенная проверка тернарных условий, например

{
    array.length != null && array.length >= 2 ?
    <View>
        /* If Content Here */
    </View>
    :
    array.length != null?
     <View>
        /* Else if Content Here */
    </View>: 
    <View>
        /* Else Content Here */
    </View>
}

Однако вы можете просто сделать это, используя if-else в функции, которую вы вызываете из рендеринга, как предлагает @MayankShukla, поскольку она более читабельна, чем вложенные тернарные операторы.

Практически Я не нашел более чистого способа сделать это так, как вы хотите.

Теоретически, вы можете сделать это с помощью вложенного тернарного оператора, но он довольно грязный и нечитаемый.

Я всегда придерживаюсь создания отдельного метода и вызываю его в рендере:

renderView() {
  if (array.length != null && array.length >= 2) {
    return <div>Array Is Greater Than 2</div>
  } else if (array.length != null ) {
    return <div>Array Is Less Than 2</div>
  } else {
    return </div>
  }
}

render() {
  return <div>{this.renderView()}</div>
}

Большое спасибо за ваши усилия, так как я нашел, что вложенный тройной способ более удобен для меня. Поддерживаю ваш ответ за помощь.

Kirankumar Dafda 10.07.2018 12:19

Другие вопросы по теме