【发布时间】:2017-03-31 10:27:25
【问题描述】:
我正在尝试通过computed 从我的 vuex 存储中获取一些数据到组件中。出于某种原因,它不允许我在我的几个组件中访问userInfo.uid。就是说 userInfo.uid 是 undefined 即使 VueTools 清楚地显示它已成功导入。不知道为什么会这样。例如,这是一个测验组件,我尝试从我的 vuex 存储中获取 userInfo 数据,以便我可以使用它来访问 firebase 引用中的一些数据。
难道我不能使用this.$store.state 访问我的 vuex 状态吗?当我这样做时,它也会引发错误。无论如何,下面的代码给了我 95% 的不确定性。除了随机它会给出userId 然后我重新加载页面并返回到undefined。不知道发生了什么。谢谢!
测验.vue
<template>
</template>
<script>
// TODO: WHY IS userInfo.uid UNDEFINED!!!!?????
var db = firebase.database();
import store from '../store'
import { mapState } from 'vuex'
import VueFire from 'vuefire'
import Vue from 'vue'
Vue.use(VueFire)
export default {
name: 'quiz',
computed: mapState({
userInfo: state => state.userInfo
}),
created () {
console.log(store.state.userInfo.uid)
},
components: {},
firebase: {
quiz: db.ref('/users/' + store.state.userInfo.uid + '/createdResources/' + store.state.postKey + '/quiz/')
}
}
</script>
<style>
.quiz {
margin-top: 60px;
padding: 40px;
width: 800px;
background-color: white
}
<style>
【问题讨论】:
-
你的图片里有apiKey,可以给大家看吗?
-
我自己没有使用过firebase。
db是从服务器获取数据还是从本地存储之类的东西获取数据? -
从后端即服务获取数据。问题似乎是
userInfo在createdResources.vue中未定义,但我不知道为什么它会出现undefined。我将props: [userInfo]传递给createdResources.vue,这应该允许我访问它。
标签: vue.js