Javascript 如何处理无法读取属性';未定义';未定义的

Javascript 如何处理无法读取属性';未定义';未定义的,javascript,react-native,undefined,Javascript,React Native,Undefined,我希望远程服务器的一些数据会显示在屏幕上,但我在模拟器中遇到了此错误无法读取未定义的属性“undefined”原因是在结果到达之前呈现内容,这是代码中出现此错误的部分: caption = { this.state.customFieldDropdown['gender'][this.state.dropDownSelectedItems['gender'] ] || '---Choose---' } 因此属性caption需要一个文本,为了处理未定义的值,我添加了这个| |'--选择--'以

我希望远程服务器的一些数据会显示在屏幕上,但我在模拟器中遇到了此错误
无法读取未定义的属性“undefined”
原因是在结果到达之前呈现内容,这是代码中出现此错误的部分:

caption = { this.state.customFieldDropdown['gender'][this.state.dropDownSelectedItems['gender'] ] || '---Choose---' }
因此属性
caption
需要一个文本,为了处理未定义的值,我添加了这个
| |'--选择--'
以显示文本
'--如果为空,选择--'
,但问题是
this.state.dropDownSelectedItems['gender']
未定义,当
此.state.customFieldDropdown
访问导致错误的值时(读取未定义的属性)


那么如何处理这个问题呢?

您似乎在属性链中拥有更高的未定义值。
|
运算符将只匹配链中的最后一个值,因此如果例如
this.state.customFieldDropdown['gender']
未定义,它将失败


我建议您看看React团队引入的idx函数。这里有更多详细信息:

Idx非常好。你可以这样做:

if (idx(this.state, _ => _.customFieldDropdown.gender[_.dropDownSelectedItems.gender]))
    caption = this.state.customFieldDropdown.gender[this.state.dropDownSelectedItems.gender]
else
    caption = '---Choose---'