如何解决无法读取属性“length”?[reactjs]
2018-07-09
77
我正在尝试获取一个对象的长度,但是正在获取此错误消息:
uck typeerror:无法读取未定义的
我尝试使用
this.props.storyboardtargets.lengths.length === 0
案例1:数据不可用,因此
(!this.props.storyboardtargets)
- >
未定义的
情况2:数据在那里,然后删除或清除,因此需要检查长度
这是我的代码:
<代码> 3401788463个回答
您现在的编写方式无法处理
this.props.storyboardTargets
可能未定义的问题。您需要像这样更新它:
handleShowPopupTarget = () => {
if (!this.props.storyboardTargets || !this.props.storyboardTargets.length) {
console.log(this.props.storyboardTargets);
toastWarning(WARNING_MSG_NO_TARGET);
}
};
这意味着如果
storyboardTargets
未定义,
或其长度为 0,则将触发
toastWarning
。
作为替代方案,您可以为
storyboardTargets
的空数组定义一个默认 prop。这样它就永远不会是
undefined
。
Ted
2018-07-09
错误消息意味着
storyboardTargets
未定义。尝试查看
storyboardTargets
是否被传递到包含
handleShowPopupTarget
方法的组件。
Sasha K.
2018-07-09
使用 lodash 的 get ,它简化了很多这类错误检查:
_.get(this.props, 'storyboardTargets.length', 'default'); // you could use 0 instead of 'default' in your case
Lafi
2018-07-09