在我的组件中,我循环遍历一个data属性,它是一个对象,以检查是否设置了任何值。其中一个值是一个数组,但是当它为空时,我通过控制台记录它的值,它会返回
[__ob__: Observer]
。
如果我测试它是一个数组还是一个对象,它不会对它们中的任何一个返回true。只有在添加了元素后,它才会被识别为数组。
我还试着测试它是否是一个函数(entry[1] === "function"
) --不是真的。
那么什么是[__ob__: Observer]
,我如何进行检查才能识别这个特定的东西呢?我需要为它破例。
发布于 2019-05-21 15:06:11
VueJS具有“反应性”,这意味着它们会为你观察对象。因此,在您的基本数据选项中,Vue将为您监视属性。
new Vue({
data() {
return {
myArray: []
}
}
})
在这种情况下,myArray将是一个可观察的对象,这只是一个包装器,您仍然可以使用所有标准的数组操作。
这意味着你仍然可以这样做:
if (this.myArray && this.myArray.length > 0) {
Do something with they array
}
有关VueJS如何处理数据选项的更多信息。https://vuejs.org/v2/guide/reactivity.html
发布于 2019-11-09 05:56:24
如果你的目标是调试Observer
Vue实例中包含的东西,这是我的解决方案:
打印出
template
块中变量属于您的组件
在此之后,您可以重新格式化输出的结构以观察细节。
例如:
<template>
<div>
{{ your_variable }}
<div>
</template>
希望这能对你有所帮助。
发布于 2019-05-21 14:59:47
如果您的目标是检查数组是否为空,为什么不直接检查arrayVariable.length === 0
?[__ob__: Observer]
是一个具有Vue注入反应性的对象。你可以检查typeof arrayVariable
,你应该得到object
。
https://stackoverflow.com/questions/56240840
复制相似问题