React native,如果值为空,如何不从 API 调用该值?
2020-11-22
701
在我的这个 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>
}
)
})
我想说,如果值不为空,就把数据发给我,否则就发一个简单的文本,但它不起作用……
1个回答
您的代码中存在一些问题。
首先,您返回了一个对象,但未指定键。
因此,您要么需要添加一个,要么更可能是错误,您需要删除
return
中的花括号。
其次,您的拼写错误是
==!
,而不是
!==
。
第三,关于您的问题,您需要使用可选链运算符检查 API 返回的每个元素是否存在,如下所示:
val?.platforms[0]?.requirements_en?.recommended
稍微扩展一下,如果
?.
之前的部分为
null
或
undefined
,则可选链运算符将返回
undefined
。
就您而言,有时
requirements_en
为空,因此出现错误。
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>
)
})
Valentin Briand
2020-11-22