首页 > 解决方案 > 为什么检查空对象在反应中不起作用

问题描述

现在我使用这段代码检查结果是否为空,然后返回:

let data = this.props.channel.channel;
        if(!data || data == {} || data == undefined){
            return (<div></div>);
        }

但是从我的调试输出看来它不起作用,我应该怎么做才能修复它?

在此处输入图像描述

标签: javascript

解决方案


data == {}没有任何意义。false无论如何,因为对象是通过引用进行比较的。

如果您需要检查空对象,您可以使用多种方法:

JSON.stringify(data) === '{}'

或者

Object.getOwnPropertyNames(data).length === 0 // will also count non-enumerable properties!

或者

Object.keys(data).length === 0

推荐阅读