[英]Bind vuex state to this in data()?
我正在将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
? 我知道我可以进行一些破坏,但是我只是想知道是否可以避免这种情况。
我会在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
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.