如何在 React Native 中用两个语句编写 if 条件

IT技术 javascript reactjs react-native
2021-05-06 13:57:14

我只是感到困惑如何搭配就像两个声明if elseJavaScript阵营本土

例如,

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")
}

我知道如何在 React Native 中传递信号条件,例如

例如,

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

或者

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

但是我如何创建 if 状态像第一个?

3个回答

您可以进行嵌套的三元条件检查,例如

{
    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 的建议在从渲染调用的函数中简单地使用它,因为它比嵌套的三元运算符更具可读性

您可以嵌套三元条件,但我不会建议这样做,因为它不那么可读。另一种选择是您可以将所有这些条件放在一个函数中,然后从 render 方法调用该函数。

像这样:

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>
}

实际上,我没有找到一种更简洁的方法来按照您想要的方式进行操作。

从理论上讲,您可以使用嵌套的三元运算符来完成它,但它非常脏且不可读。

我总是坚持创建一个单独的方法,并在渲染中调用它:

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>
}