#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>
)
})