已将计算属性分配给但没有设置器

ekj*_*039 4 vue.js vuex

使此功能适用于myVal的正确语法/钩子是什么?

我的代码如下所示:

<v-item-group v-model="myVal" ...

import { mapActions, mapGetters } from 'vuex'; 
export default {
  computed : {
     ...mapActions({
       myVal: 'myModulePath/setMyVal'
     }),
     ...mapGetters({
       myVal: 'myModulePath/getMyVal'
     }),
  },
}
Run Code Online (Sandbox Code Playgroud)

商店看起来像:

actions: {
  setMyVal({commit}, value){commit('someMutation',value);}
getters: {
  getMyVal: state => { return state.myVal;}
Run Code Online (Sandbox Code Playgroud)

我不确定如何接线,以便“设置器”工作并且错误消息消失。

我也试过了,但无济于事:

...mapState('myModulePath', ['myVal']) 
Run Code Online (Sandbox Code Playgroud)

Roy*_*y J 7

您需要定义一个getset函数计算的单一对象。也许:

export default {
  computed : {
     myVal: {
        get() { return this.$store.getters.getMyVal; },
        set(newValue) { this.$store.dispatch('setMyVal', newValue); }
     }
  },
}
Run Code Online (Sandbox Code Playgroud)


jfa*_*ich 7

您需要告诉vue组件在为计算属性分配新值时该怎么做

computed: {
     myVal: {
        get: () => this.$state.store.getters.myModulePath.getMyVal,
        set: (value) => this.$state.commit('someMutation', value )
    }
  }
Run Code Online (Sandbox Code Playgroud)

请注意,我使用二传手而不是操作。在计算的属性设置器中使用操作不是一个好主意,因为操作通常是异步的,并且可能在以后调试计算的属性时引起头痛。