vue.js - 使用 Vuex,为什么 mapGetters 不接受与 mapState 相同的语法?
问题描述
我有一个 Vue 组件,它映射来自 Vuex 商店的状态、突变、动作和 getter。
import {mapState, mapMutations, mapActions, mapGetters} from 'vuex'
export default {
name: 'DefaultLayout',
computed: {
...mapState({
settings: (state) => state.settings,
language: (state) => state.language
}),
...mapState([
'changeRouteTo'
]),
...mapGetters([
'isLoggedIn'
])
}
...
问题是,我无法...mapGetters
像使用上面的第一个实例那样使用显式语法...mapState
。
我试过了
...mapGetters({
isLoggedIn: (state) => state.getters.isLoggedIn
})
和
...mapGetters({
isLoggedIn: (state) => state.isLoggedIn
})
和
...mapGetters({
isLoggedIn: (state) => this.$store.getters.isLoggedIn
})
但只有
...mapGetters([
'isLoggedIn'
])
似乎工作。
解决方案
在语法中使用对象...mapGetters
如下:
...mapGetters({
isLoggedIn: 'isLoggedIn'
})
其中键是您希望 getter 映射到的名称,值是作为字符串的 getter 名称
推荐阅读
- python - 在for循环中使用rdkit生成png文件,但每次生成的都是同一个png文件
- android - 两个 Android 主题可以包含共同的值而不相互继承吗?
- powerbi - DAX 代码不适用于度量中使用的配置变量
- python - 如何整合销售人员和 Django?
- batch-file - for循环内批处理脚本中的子字符串计算
- xcode - Xcode:如何将“新二进制文件”上传到 App Store Connect?
- php - 使用 laravel 上传多个文件
- css - 如何忽略容器的宽度,向右溢出,而不破坏页面?
- python - 屏幕上的 Python Turtle 中心龟
- regex - 正则表达式排除带有点和 0 位的数字