我正在从一个api中检索信息。在提要页面上,如果redux道具为空。。。我想让它支撑一个";错误";消息如果没有继续。
然而,我一直得到×TypeError:无法读取未定义的属性"length">
props.posts.length === undefined
使用上面的方法来检查其未定义是否不会阻止它遇到错误。显然,从api中检索数据需要一段时间数组长度:0,0,100。这就是为什么我认为我得到了错误。但是我该如何告诉它只检查
您只需检查是否定义了props.posts
(或truthy(:
if(!props.posts){
// props.posts is falsy here, which won't be the case when it's an array
}
其他选项包括:
可选的链接有助于执行此检查。它有很好的浏览器支持,默认情况下create-react应用程序支持它。
props.posts?.length === undefined
逻辑运算符短路:即如果props.posts
是假的,那么!props.posts
是真的,并且它永远不会到达||
运算符的右侧。
!props.posts || props.posts.length === undefined