我尝试使用mapState函数从存储中获取状态,但是我无法使用将值返回到我的模板代码中的生成代码...
<template>
// Some code
<template v-if="!isLoggedIn">
// Some code
</template>
<template v-else>
// Some code
{{ currentUser.name }}
</template>
// Some code
</template>
<script>
import { mapState } from "vuex";
export default {
// Some code
computed: {
...mapState({auth : ['currentUser', 'isLoggedIn','customers']})
}
}
</script>
代替下面的代码工作
<script>
import { mapState } from "vuex";
export default {
// Some code
computed: {
currentUser() {
return this.$store.state.auth.currentUser
},
isLoggedIn() {
return this.$store.state.auth.isLoggedIn
},
}
}
</script>
警告信息
[Vue警告]:属性或方法“ isLoggedIn”未在实例上定义,但在渲染期间被引用。通过初始化属性,确保在data选项中或对于基于类的组件,此属性都是反应性的。参见:https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties。
预先感谢
答案 0 :(得分:2)
下面是使用非根属性的正确语法(使用箭头功能):
computed: {
...mapState({
currentUser: state => state.auth.currentUser,
isLoggedIn: state => state.auth.isLoggedIn,
customers: state => state.auth.customers
})}
答案 1 :(得分:0)
如果您尝试从名为auth
的命名空间vuex模块访问值,请将模块名称作为第一个参数传递,并将值数组作为第二个参数传递:
computed: {
...mapState('auth', ['currentUser', 'isLoggedIn','customers'])
}
答案 2 :(得分:-1)
您可以mapState模块,然后使用this.auth.isLoggedin