在我的这个API中我想从推荐的配置中获取值,但有些值为空,所以我的应用程序给了我一个错误:
null不是对象
这是我的代码:
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,请将数据发送给我,否则将是一个简单的文本,但它不起作用。。。
您的代码中有一些问题。
首先,您正在返回一个对象,但没有指定键
因此,您需要添加一个,或者这很可能是一个错误,您需要删除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>
)
})