【发布时间】:2023-03-11 21:26:01
【问题描述】:
如果我这样做:
<div class="panel panel-default" v-if="socialiteLogins !== null">
面板不会隐藏。如果我单独检查socialiteLogins === null,或者使用==,它们都会返回该对象不为空。虽然它肯定是空的。如果我将它转储到页面上,我会得到 [] 作为结果。这是一个空的 json 对象。所以如果我试试这个:
<div class="panel panel-default" v-if="socialiteLogins.length !== 0">
面板仍然没有隐藏,我收到此错误:
无法读取 null 的属性“长度”
但如果我这样做:
<div class="panel panel-default" v-if="socialiteLogins !== null && socialiteLogins.length !== 0">
它完美地隐藏了面板,在初始加载时没有警告,但是当我稍后更新 socialiteLogins 变量时,如果它再次返回一个空的 json 对象,我会收到长度警告。知道为什么吗?
编辑:
添加到它...如果我这样做:
<div class="panel panel-default" v-show="socialiteLogins">
即使没有,它也会在初始加载时显示,但如果我在页面加载后删除它们,它会正确隐藏面板。所以唯一的问题似乎是初始加载没有正确检测到没有记录。
【问题讨论】:
-
你的问题可能有错字;你说的第一个例子不起作用,但最后一个例子完全一样,你说它有效。
-
@RyanZim 有,谢谢,而且我做了更多测试,但仍然无法正常工作,所以我更新了问题。
标签: javascript vue.js