【发布时间】:2017-09-08 13:59:48
【问题描述】:
我正在将 vuex 升级到 2.0,并且想知道它是否可能在数据初始化之前使用 mapstate/getters?
在 Vuex 1.0 中,vuex 状态会在 data() 之前被映射,所以我可以调用 this 然后是我想要访问的状态
import { mapGetters } from 'vuex'
export default {
vuex: {
getters: {
userSettings: ({ settings }) => settings.userSettings,
}
},
data: function () {
return {
sendEmails: this.userSettings.sendEmails
}
}
}
但在 Vuex 2.0 中,我必须这样做 this.$store.state.settings.UserSettings.sendEmails
import { mapGetters, mapState } from 'vuex'
export default {
data: function () {
return {
sendEmails: this.$store.state.settings.UserSettings.sendEmails
}
}
computed: {
...mapGetters({
settings: "settings"
})
}
有没有办法在 data() 之前初始化该状态?我有多个组件在数据初始化中使用状态并且必须调用this.$store.state?我意识到我可以做一些解构,但我只是想知道我是否可以避免这种情况。
【问题讨论】:
-
sendEmails应该是一个计算属性,您最终可以为它创建一个 getter(在您的商店中)。 -
@soju 你能解释一下为什么它必须是计算属性吗?
-
你读过这个吗:vuex.vuejs.org/en/…?
标签: javascript vue.js vuejs2 vuex