如何在 if 语句中渲染某些内容 React Native

How to render something in an if statement React Native

问题

我在 React Native 中使用平面列表,并想与平面列表中的变量进行比较,如果两个变量相等则渲染文本组件,如果不相等则不渲染任何内容。我已经尝试了很多方法来做到这一点,但没有任何效果。我希望得到一些帮助,找出一种方法来做到这一点!谢谢。

spring 立即想到的几种方法。我只是假设您要比较的是什么,但您可以随意切换这些变量。你可以做的第一件事是让你的文本在你的 Text 组件中是有条件的,EG

<Text>{this.state.variable == this.props.stuff ? "RENDER TEXT" : ""}</Text>

或者,如果您想在变量不相等时发出 Text 组件,请在 class 内部设置一个函数,该函数将 return Text 组件有条件地

renderMessage = () => {
    if(this.state.variable == "stuff"){
        return(
            <Text>They were equal</Text>
        );
    }else{
        return(
            <View></View> // OR WHATEVER YOU WANT HERE
        );
    }
}
...
//Then in your render function
....
<View style = {styles.whatever}>
    {this.renderMessage()}
</View>

只需相应地比较 renderItem 方法中的数据

 <FlatList
      data={this.props.data}
      renderItem={this._renderItem}
    />

    _renderItem = ({item}) => (
        if(item=='somthing'){
           return <Text> your test </Text>
         }else{
            return <Text>some other text</Text> 
         }
    );

如果您想比较组件中的文本,那么

<View>
    {
    item.data == 'somthing'
       ?
      <Text>if</Text> 
       :
      <Text>else</Text>
    }
</View>