繁体   English   中英

将vuex状态绑定到data()中?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM