gpt4 book ai didi

arrays - VueJS : observer object instead of Array

转载 作者:行者123 更新时间:2023-12-02 08:20:02 26 4
gpt4 key购买 nike

我有一个使用 Firebase 的小型单页 VueJS 应用程序。我当前面临的问题是当我尝试从组件中的 Firebase 检索集合时。 vue 实例不返回数组,而是返回一个观察者对象,更准确地说是 [__ob__: Observer]。我知道 Vue JS 使用这个对象来发挥它的魔力,我不明白的是我应该做什么来获取实际的数组。我无法对该对象执行任何操作,无法迭代它。我尝试了任何生命周期方法来尝试做到这一点,但没有运气。更奇怪的是,当我关闭并再次打开 Chrome 控制台 (F12) 时,这些方法会再次被调用,并且该对象实际上被解析到数组中。我最初以为数据可能还没有被检索到,但是数据存在于对象本身中,我只是无法访问它。

这是我的代码:

Vue 实例:

new Vue({
el: '#app',
firebase: {
orders: firebase.database.ref('orders').orderByChild('created_at'),
members: firebase.database.ref('members').orderByChild('created_at')
},
router,
template: '<App/>',
components: { App }
})

组件代码:

export default {
data () {
return {
'member': null
}
},
computed: {
isMemberLoaded: function () {
this.member !== null
}
},
mounted: function () {
console.log('mounted')
this.init()
console.log(this.$root.members) // [__ob__: Observer]
},
created: function () {
console.log('created')
console.log(this.$root.members) // [__ob__: Observer]
},
updated: function () {
console.log('updated')
console.log(this.$root.members) // [__ob__: Observer]
},
methods: {
init: function () {
console.log('init')
console.log(this.$root.members) // [__ob__: Observer]
}
}
}

观察者对象如下所示:

[__ob__: Observer]
0:
.key:(...)
code:(...)
created_at:(...)
email:(...)
name:(...)
__ob__:Observer {value: {…}, dep: Dep, vmCount: 0}
get .key: ƒ reactiveGetter()
set .key: ƒ reactiveSetter(newVal)
get code: ƒ reactiveGetter()
set code: ƒ reactiveSetter(newVal)
get created_at: ƒ reactiveGetter()
set created_at: ƒ reactiveSetter(newVal)
get email: ƒ reactiveGetter()
set email: ƒ reactiveSetter(newVal)
get name: ƒ reactiveGetter()
set name: ƒ reactiveSetter(newVal)
__proto__: Object
length: 1
__ob__: Observer {value: Array(1), dep: Dep, vmCount: 0}
__proto__: Array

我在这里缺少什么?

最佳答案

简单地做:

var parsedObj = JSON.parse(JSON.stringify(this.$root.members))
console.log(parsedObj)

它将把[ob:观察者]转换为其值

关于arrays - VueJS : observer object instead of Array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46217907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com