【发布时间】:2019-02-01 09:52:41
【问题描述】:
我正在使用 Vue.js 和 Firebase 构建一个小应用程序 - 现在我想创建一个我的用户“真实数据库”列表。哪个工作正常,但只有在我登录后刷新它时才可以。
[Vue 警告]:渲染错误:“RangeError: 超出最大调用堆栈大小”
RangeError: 超出最大调用堆栈大小
我的 HTML 如下所示:
<div class="col-12">
<h2>Liste</h2>
<div class="user-ol">
<ol id="example-1">
<li v-for="user1 in users[0]">
{{ user1.name }}
</li>
</ol>
</div>
</div>
和我这样创建的 Hook
new Vue({
el: '#app',
data: {
users: [],
email: '',
name: '',
authUser: null,
role: null,
counter: null,
active: null
},
created () {
firebase.auth().onAuthStateChanged(user => {
this.authUser = user
if (user) {
db.ref('users').on('value', snapshot => this.users.push(snapshot.val()));
this.displayname = user.displayName
this.email = user.email
db.ref('users').child(user.uid).once('value', snapshot =>{
if (snapshot.val()){
this.role = snapshot.val().role
this.counter = snapshot.val().counter
this.active = snapshot.val().active
this.name = snapshot.val().name
Vue.set(this.authUser, 'counter', this.counter)
Vue.set(this.authUser, 'active', this.active)
Vue.set(this.authUser, 'name', this.name)
}
})
}
})
}
我之前在我的列表元素中也有这个,但它甚至不会呈现我的页面,并且每 2 秒出现 5 个这些错误
v-bind:class="{ 'green font-weight-bold' : user.active }"
我不确定我做错了什么:/
【问题讨论】:
-
db.ref('users').on('value', ....on()的文档 ~ “您的回调将在初始数据时触发并在数据更改时再次触发”