Nuxt vuex computed getters 没有改变

Nuxt vuex computed getters is not changing

问题是在组件内部,计算的 属性 有效,但是相同的计算 属性 在页面上以相同的方式编写 returns 一个空对象。

状态:

export const state = () => ({
  mapAddress: {},
})

Getter:

  getMapAddress: state => {
    return state.mapAddress
  },

computed: {
 mapAddress() {
    return this.$store.getters.getMapAddress;
 }
}

Setter:

setMapAddress(state, {id, address}) {
    state.mapAddress[id] = address
  },

在组件中:

this.$store.commit("setMapAddress", {
   id: mker.id, 
   address: addressResult
});

我认为错误是因为需要使用 this.$set() 但我如何在 nuxt vuex 突变上使用它?

setMapAddress(state, { id, address }) {
    this._vm.$set(state.mapAddress, id, address)
},

您可以使用 Vuex 中的 mapState 方法代替此计算 属性:

  import { mapState } from 'Vuex'
  computed: {
    ...mapState({
      mapAddress: (state) => state.mapAddress
    })
  }

您需要使用 mapgetter。试试这个:

computed: {
    
   ...mapGetters({ mapAddress: 'YOUR_STORE_NAME/getMapAddress' })
     
} 

   

如果你想让它响应,你需要在你的 setter:

中使用 Vue.set
import Vue from 'vue';

// ...

setMapAddress (state, { id, address }) {
  Vue.set(state.mapAddress, id, address);
},