React native, как не вызывать значение из API, если оно равно null?

#react-native #api #mobile #null #fetch

#react-native #API #Мобильный #null #выборка

Вопрос:

В моем this API я хотел взять значения из рекомендуемых конфигураций, но некоторые значения равны нулю, поэтому мое приложение выдает ошибку: null is not an object

Вот мой код:

 let page1 = this.state.dataSource1.map((val, key) => {
    // if (val.platforms[0].requirements_en.minimum != null) {

    // }
    return (
        {val.platforms[0].requirements_en.recommended ==! null ?
            <Text style={styles.name}>minimal configuration : {val.platforms[0].requirements_en.recommended}</Text>
            :
            <Text>Nothing</Text>
        }
    )
})
 

Я хотел сказать, что если значение не равно null, отправьте мне данные в противном случае простым текстом, но это не работает…

Комментарии:

1. Вы имели в виду !== ?

2. Это также не работает.

Ответ №1:

У вас есть несколько проблем в вашем коде.

Во-первых, вы возвращаете объект, но не указываете ключ.
Итак, вам либо нужно добавить его, либо, что более вероятно, это ошибка, и вам нужно удалить фигурные скобки в вашем return .

Во-вторых, у вас опечатка ==! вместо !== .

В-третьих, по вашему вопросу вам нужно проверить, что каждый элемент, возвращаемый API, существует с необязательным оператором цепочки следующим образом: val?.platforms[0]?.requirements_en?.recommended
Чтобы немного расширить это, необязательный оператор цепочки вернет undefined , если часть перед ?. null или undefined .
В вашем случае иногда requirements_en равно null, следовательно, почему вы получили свою ошибку.

 let page1 = this.state.dataSource1.map((val, key) => {
  return val?.platforms[0]?.requirements_en?.recommended ? (
    <Text key={key}>
      minimal configuration: {val.platforms[0].requirements_en.recommended}
    </Text>
  ) : (
    <Text>Nothing</Text>
  )
})