Как сделать что-то в операторе if React Native

1

проблема

Я использую flatlist в native native и хочу сравнить с переменными в flatlist и визуализировать текстовый компонент, если две переменные равны, но ничего не делают, если они не являются. Я пробовал много способов сделать это, но они ничего не сработали. Мне хотелось бы помочь понять, как это сделать! Спасибо.

  • 0
    Можете ли вы дать некоторую подробную информацию или что-то, что вы сделали в своем коде?
Теги:
react-native
react-native-flatlist

2 ответа

3
Лучший ответ

Пара способов, которые приходят в голову сразу. Я просто предполагаю, что вы пытаетесь сравнить, но вы можете переключать эти переменные на все, что угодно. Первое, что вы могли бы сделать, это заставить текст быть условным внутри вашего Text компонента, EG

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

или, если вы хотите исправить компонент Text когда переменные не равны, у вас есть функция внутри вашего класса, которая будет возвращать компонент 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>
  • 0
    Стоит комментировать: я не уверен, что вы можете вернуть null в renderMessage но, возможно, вы можете - нуждается в разъяснении
  • 0
    ничего не делает для нуля. Работает отлично!
0

просто сравните свои данные в методе 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>
  • 0
    Вы уверены в этом ответе?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню