为什么 vuexfire 不更新状态而是正确更新 ui?
Why is vuexfire not updating state but updating the ui correctly?
我正在尝试为一个项目设置带有 firestore 的 vuexfire,我想我已经根据文档完成了所有操作。我设法使用 vuex/vuexfire 从组件内部的 firestore 获取数据并在 UI 中正确显示它,但是在 devtools 中检查状态时我发现我的状态没有改变。
我使用 vue-cli 设置了我的项目,并遵循了 vuexfire 文档和基本待办事项应用程序的示例。
这是我的商店文件:
import Vue from 'vue'
import Vuex from 'vuex'
import { vuexfireMutations, firestoreAction } from 'vuexfire'
import { db } from './db'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
todos: []
},
mutations: {
...vuexfireMutations
},
actions: {
bindTodos: firestoreAction(({ bindFirestoreRef }) => {
return bindFirestoreRef('todos', db.collection('todos'))
}),
unbindTodos: firestoreAction(({ unbindFirestoreRef }) => {
unbindFirestoreRef('todos')
})
}
})
这是加载和显示 ui 的基本组件:
<template>
<div>
<h1>Home</h1>
<p v-for="todo in todos" :key="todo.id">{{ todo.name }}</p>
</div>
</template>
<script>
import { mapState, mapActions } from 'vuex'
export default {
name: 'Home',
computed: { ...mapState(['todos']) },
methods: { ...mapActions(['bindTodos']) },
created: function () {
this.bindTodos()
}
}
</script>
如您所见,UI 显示的是待办事项,但状态不是:
我已经尝试在开发工具中刷新状态,但它不起作用。任何帮助将不胜感激!
原来是chrome的vue开发工具的问题,最后决定卸载重装,终于成功了。状态实际上正在更新,但开发工具没有显示它。
希望这对以后的人有所帮助!
Vue 开发工具
- 设置
- 新 Vuex 后端:
OFF
我正在尝试为一个项目设置带有 firestore 的 vuexfire,我想我已经根据文档完成了所有操作。我设法使用 vuex/vuexfire 从组件内部的 firestore 获取数据并在 UI 中正确显示它,但是在 devtools 中检查状态时我发现我的状态没有改变。
我使用 vue-cli 设置了我的项目,并遵循了 vuexfire 文档和基本待办事项应用程序的示例。
这是我的商店文件:
import Vue from 'vue'
import Vuex from 'vuex'
import { vuexfireMutations, firestoreAction } from 'vuexfire'
import { db } from './db'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
todos: []
},
mutations: {
...vuexfireMutations
},
actions: {
bindTodos: firestoreAction(({ bindFirestoreRef }) => {
return bindFirestoreRef('todos', db.collection('todos'))
}),
unbindTodos: firestoreAction(({ unbindFirestoreRef }) => {
unbindFirestoreRef('todos')
})
}
})
这是加载和显示 ui 的基本组件:
<template>
<div>
<h1>Home</h1>
<p v-for="todo in todos" :key="todo.id">{{ todo.name }}</p>
</div>
</template>
<script>
import { mapState, mapActions } from 'vuex'
export default {
name: 'Home',
computed: { ...mapState(['todos']) },
methods: { ...mapActions(['bindTodos']) },
created: function () {
this.bindTodos()
}
}
</script>
如您所见,UI 显示的是待办事项,但状态不是:
我已经尝试在开发工具中刷新状态,但它不起作用。任何帮助将不胜感激!
原来是chrome的vue开发工具的问题,最后决定卸载重装,终于成功了。状态实际上正在更新,但开发工具没有显示它。
希望这对以后的人有所帮助!
Vue 开发工具
- 设置
- 新 Vuex 后端:
OFF
- 新 Vuex 后端: