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---'