微信小程序开发中,为什么我明明定义的是一个空集合,但是wx:if判断还是不为空

为什么我明明定义的是一个空集合,但是wx:if判断还是不为空?本蠢狗弄了半天了,求大家指点
页面代码:


if="{{!ingInfo}}" bindtap="add_shift">name="plus" class="add_icon add"/>

js代码

 data: {
    ingInfo: {}
  },

ingInfo: {}  你这不是声明一个对象么,数组应该是     ingInfo: []这样吧, if条件这样试试看 wx:if="{{Object.keys(ingInfo).length === 0}}"

Object.keys({}).length

以下内容部分参考ChatGPT模型:


在 JavaScript 中,空对象和空数组都是 truthy 值,也就是说在布尔上下文中会被当作 true 处理。因此在 wx:if 中判断一个空对象或空数组时,会被视为非空,需要判断其长度或是否为空对象来判断其是否为空。

所以可以改为以下代码:

<view wx:if="{{Object.keys(ingInfo).length === 0}}" bindtap="add_shift"><van-icon name="plus" class="add_icon add"/></view>

其中,Object.keys(ingInfo) 返回 ingInfo 对象的所有可枚举属性的名称组成的数组,如果该数组长度为 0,则说明该对象为空。


如果我的建议对您有帮助、请点击采纳、祝您生活愉快

空对象 当然不为空 。 JSON.stringify(ingInfo) == "{}" 或者 楼上的 object.keys