我正在将vuex升级到2.0,我想知道在初始化数据之前是否可以使用mapstate/getters?
在Vuex1.0中,Vuex状态会在data()之前映射,这样我就可以先调用this
,然后再调用我想要访问的状态
import { mapGetters } from 'vuex'
export default {
vuex: {
getters: {
userSettings: ({ settings }) => settings.userSettings,
}
},
data: function () {
return {
sendEmails: this.userSettings.sendEmails
}
}
}
但在Vuex2.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
?我意识到我可以做一些解构,但我只是想知道我是否可以避免这种情况。
发布于 2017-04-12 17:57:27
我会在mounted
中设置sendEmails
import { mapGetters, mapState } from 'vuex'
export default {
data: function () {
return {
sendEmails: []
}
}
computed: {
...mapGetters({
settings: "settings"
})
},
mounted: function() {
if (this.settings.UserSettings){
this.sendEmails = this.settings.UserSettings.sendEmails
}
}
}
https://stackoverflow.com/questions/43375447
复制