什么是正确的语法/钩子使myVal工作?

我的代码如下所示:

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

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

这家store 看起来像:

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

我不知道如何连接它,使"setter"工作,错误信息消失.

我也试过了,但没用:

...mapState('myModulePath', ['myVal']) 

推荐答案

您需要告诉vue组件,当计算(computed)属性被指定一个新值时,该怎么做

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

请注意,我使用setter而不是action.在computed property setter中使用操作是个坏主意,因为操作通常是异步的,并且在以后调试computed property时可能会导致麻烦.

Vue.js相关问答推荐

Vue CDN的html工作,但v—如果不工作

在 Vuejs 中更新 Chartjs 图表数据集

通过元素加中的正则表达式输入电话号码格式

使用 vue / nuxt js 切换 fontawesome 图标

props至少应该定义它们的类型

Vuex:如何等待动作完成?

未捕获的类型错误:无法读取未定义的属性initializeApp

v-on:submit.prevent 不停止表单提交

数据更新后触发 Vue.js 事件

使用 Vee-Validate 在提交时验证子输入组件

将 Vuetify 从 1.5 升级到 2 时,Sass-loader 错误 'options has an unknown property 'indentedSyntax''

如何禁用 nuxt 默认错误重定向

Proxy代理在 Vue 3 的控制台中是什么意思?

为什么 v-model 不适用于数组和 v-for 循环?

'vue' 未被识别为内部或外部命令

如何在 vue.js 中进行嵌入?

在 VueJS 中使用 Axios - 这个未定义

如何在 Vue.js 中延迟 @keyup 处理程序

居中 v-toolbar-title

这个业务逻辑有多少属于 Vuex?