Javascript Vue-是否可以在组件的computed属性中使用Vuex getter?
在我的vuex中,存储有不同的变量,例如Javascript Vue-是否可以在组件的computed属性中使用Vuex getter?,javascript,vue.js,vuejs2,vue-component,vuex,Javascript,Vue.js,Vuejs2,Vue Component,Vuex,在我的vuex中,存储有不同的变量,例如loggedIn。现在我需要从组件的computed部分使用这个变量,因为我想根据变量值过滤数组 在这里,您可以看到我希望如何在代码中使用它 <td v-for="(item, index) in navLinks" :item="navLink" :key="index"> <router-link :to="{ name: item.name }" class="router-links" exact>{{ item.tex
loggedIn
。现在我需要从组件的computed
部分使用这个变量,因为我想根据变量值过滤数组
在这里,您可以看到我希望如何在代码中使用它
<td v-for="(item, index) in navLinks" :item="navLink" :key="index">
<router-link :to="{ name: item.name }" class="router-links" exact>{{ item.text }}</router-link>
</td>
我总是犯错误
未捕获的TypeError:无法读取未定义的属性“loggedIn”
所以我认为我不能在安装组件之前使用Vuex getter,因为没有定义这个
如果我在data
中使用v-If
-指令的navLinks
,我会得到一个错误,因为v-for绑定不允许使用v-If绑定
那么如何解决我的问题呢?navLinks
应该是一个返回数组的函数:
computed: {
...mapGetters(['user', 'loggedIn']),
navLinks(){
return [
{
vif: !this.loggedIn,
name: 'Register',
text: 'Registrieren',
},
{
vif: this.loggedIn,
name: 'Logout',
text: 'Logout',
},
];
),
},
你说得对:在computed中,应该有函数,而不是变量。。。非常感谢。
computed: {
...mapGetters(['user', 'loggedIn']),
navLinks(){
return [
{
vif: !this.loggedIn,
name: 'Register',
text: 'Registrieren',
},
{
vif: this.loggedIn,
name: 'Logout',
text: 'Logout',
},
];
),
},