javascript - 为什么检查空对象在反应中不起作用
问题描述
现在我使用这段代码检查结果是否为空,然后返回:
let data = this.props.channel.channel;
if(!data || data == {} || data == undefined){
return (<div></div>);
}
但是从我的调试输出看来它不起作用,我应该怎么做才能修复它?
解决方案
data == {}
没有任何意义。false
无论如何,因为对象是通过引用进行比较的。
如果您需要检查空对象,您可以使用多种方法:
JSON.stringify(data) === '{}'
或者
Object.getOwnPropertyNames(data).length === 0 // will also count non-enumerable properties!
或者
Object.keys(data).length === 0
推荐阅读
- php - php从api调用读取文件
- asp.net-mvc - 如何在 MVC 中的回发中保留 formcollection 值
- java - Spark with Hive:找不到表或视图
- iframe - 嵌入包含导入的非公开日历的 Google 日历
- ios - 滑动 UIView 时出现动画错误
- spring-boot - 在同一个 schema.sql H2 中创建两个表
- amazon-web-services - 允许流量到 AWS WAF 中的特定路径
- ios - 缺少配置文件:应用程序必须在名为 embedded.mobileprovision 的文件中包含配置文件
- c# - botframework v4 - 使用最新的 Nuget 包
- android - 从现有的导入项目更改包路径