Javascript 如果对象可以未定义,如何基于属性有条件地渲染(v-if)?
请注意,父级是先前定义的firebase引用 这没关系:Javascript 如果对象可以未定义,如何基于属性有条件地渲染(v-if)?,javascript,firebase,vue.js,Javascript,Firebase,Vue.js,请注意,父级是先前定义的firebase引用 这没关系: v-if="parent['key'] == foo" 但这是: v-if="parent['key'].child('somechild') == bar" 正在引发以下错误: [Vue warn]:呈现时出错:“TypeError:无法读取未定义的属性“child” 请在引用之前尝试保护: v-if="(parent['key'] && parent['key'].child('somechild')) == ba
v-if="parent['key'] == foo"
但这是:
v-if="parent['key'].child('somechild') == bar"
正在引发以下错误:
[Vue warn]:呈现时出错:“TypeError:无法读取未定义的属性“child”
请在引用之前尝试保护:
v-if="(parent['key'] && parent['key'].child('somechild')) == bar"
谢谢@acdcjunior。错误已停止,但它现在不符合条件
v-if=“(parent['key']&&parent['key'].child('uid'))==user.uid“v-for=”parent in buildings“
,即使子项('uid')与用户不同。uid vue正在呈现数据库中的所有父项。我已将您的答案标记为正确。当parent['key']
未定义时,表达式(parent['key']和&parent['key'].child('uid')
返回未定义的。因此,如果正在呈现它,则可能user.uid
是undefined
或null
。为了调试,我会在某个地方添加类似的内容:child:{(parent['key']&&parent['key'].child('uid'))}-user:{{user.uid}}
,这样您就可以看到它被认为完全相等的内容。是的。user.uid
未定义。我正在使用vuefire/firebase。您是否知道如何让当前用户从一个类似于在创建之前创建的的created
的钩子中获取反应式数据?我是这样做的:`beforeCreate(){this.$store.dispatch('setUser');let user=this.$store.getters.getUser;console.log(user);//我已经创建了一个包含所有信息的问题: