在我们的代码中,我有两个语句
const { column, showTooltip, tooltipValue, data } = props;
const key = column.bindProperties[0].properties[0].name;
在测试中,此错误为
“ TypeError:无法读取未定义的属性'0'。”
此语句column.bindProperties[0].properties[0].name;
的含义以及如何对其进行测试。
答案 0 :(得分:0)
在JS中,您不能保证对象具有某些属性。
当您尝试访问column.bindProperties[0].properties[0].name
时,column.bindProperties
或column.bindProperties[0].properties
都是undefined
-因此,您会收到错误消息。
您可以使用lodash
's _.get()
或使用多余的烦人验证密钥是否已定义:
const key = column
&& column.bindProperties
&& column.bindProperties[0]
&& column.bindProperties[0].properties
&& column.bindProperties[0].properties[0]
&& column.bindProperties[0].properties[0].name;
这将确保您的代码不会中断。如果未定义链中的一个表达式,则该表达式将停止求值,而结果仅为undefined
。