如何返回动态文本

时间:2019-06-05 17:34:26

标签: javascript react-native

我做了一个“ IF”来做动态文本,如果为null则显示一些东西,否则显示另一个。但是它返回空白。我做错了什么?

<View style={styles.rightContainer}>
    { () =>{        
        if(this.state.sicafSource.IdStatusManutencao == null){

            return(
                <View style={[{paddingHorizontal:10, marginTop:5,borderRadius:5},this.ReturnColor("Não achei na api","ATIVO")]}>
                        <Text style={[{ textAlign: 'right' }, styles.swipeCardRightTextS]}>
                                Sem informação 
                        </Text>
                </View>
            );

    }
    else{

        return(
            <View style={[{paddingHorizontal:10, marginTop:5,borderRadius:5},this.ReturnColor("Não achei na api","ATIVO")]}>
                <Text style={[{ textAlign: 'right' }, styles.swipeCardRightTextS]}>
                    api resposta true 
                </Text>
            </View>          

        );
    }
}
    }
</View>

2 个答案:

答案 0 :(得分:3)

您需要在JSX中使用ternary operator{}中的所有内容都必须是一个表达式(返回值的东西)。如果是声明。

{this.state.sicafSource.IdStatusManutencao == null ? (
    <div>Return this when true</div>
) : (
    <div>Return this when false</div>
)

答案 1 :(得分:0)

一种解决方案是调用您的匿名函数,以便可以评估if语句:

() => {
  // ...
} () // add these

但是,使用三元运算符或布尔运算符更干净。代替

if (A) {
  B;
} else {
  C;
}

您可以选择

A ? B : C

A && B || C