我做了一个“ 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>
答案 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