Вычисленное свойство было присвоено, но оно не имеет установщика - PullRequest
0 голосов
/ 20 декабря 2018

Каков правильный синтаксис / ловушки, чтобы заставить это работать для myVal?

Мой код выглядит так:

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

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

Магазин выглядит так:

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

Я не уверен, как подключить его, чтобы «установщик» работал, и сообщение об ошибке исчезло.

Я также пытался это сделать безрезультатно:

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

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Вы должны указать компоненту vue, что делать, когда вычисляемому свойству присваивается новое значение

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

Обратите внимание, что вместо действия используется сеттер.Использование действия в установщике вычисляемых свойств - плохая идея, потому что действия обычно асинхронны и могут вызвать головную боль при попытке отладить вычисленное свойство позже.

0 голосов
/ 20 декабря 2018

Вам необходимо определить одну , вычисляемую с помощью get и set функции .Может быть:

export default {
  computed : {
     myVal: {
        get() { return this.$store.getters.getMyVal; },
        set(newValue) { this.$store.dispatch('setMyVal', newValue); }
     }
  },
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...