jas*_*ode 3 javascript vue.js vuex vuejs2
我有一个要用来制作动态mapGetters的道具,但mapGetters认为道具是未定义的,这可能是因为在道具之前已加载了计算对象。有人知道我如何使它动态吗?我的代码如下:
export default {
props: ['listType'],
components: {
addrow: AddRow
},
computed: {
...mapGetters({
list: `${this.listType}/list`,
current: 'Dropdown/current'
})
},
}
Run Code Online (Sandbox Code Playgroud)
[更新]感谢@boussadjrabrahim,我找到了解决方案。我的工作代码如下:
export default {
props: ['listType'],
components: {
addrow: AddRow
},
computed: {
...mapGetters({
current: 'Dropdown/current'
}),
...mapState({
list (state, getters) {
return getters[`${this.listType}/list`]
}
})
}
}
Run Code Online (Sandbox Code Playgroud)
您还可以使用它this.$store来完全访问商店。那么,list就会变成
export default {
props: ['listType'],
computed: {
list() {
return this.$store.getters[`${this.listType}/list`]
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用dispatch方法触发一个动作,就像这样
export default {
props: ['listType'],
methods: {
sortList(order) {
this.$store.dispatch(`${this.listType}/list`, order)
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
784 次 |
| 最近记录: |