Как заставить Vue .set работать прямо во Vuex? - PullRequest
0 голосов
/ 10 июля 2020

я получаю vuejs ошибку Property or method "selectedVehicule" is not defined on the instance but referenced during render. Make sure that this property is reactive...

я думаю, это исходит от Vue.set, но что я сделал не так

Вот мой файл main. js:

import Vue from 'vue'
import App from './App'
import router from './router'
import Vuex from 'vuex'

Vue.use(Vuex)

const store = new Vuex.Store({
  state: {
    selectedVehicle: {},
  },
  mutations: {
    setSelectedVehicle (state, selectedVehicle) {
      Vue.set(state.selectedVehicle, 'items', 'dummy1')
      Vue.set(state.selectedVehicle, 'id', 'dummy2')
      Vue.set(state.selectedVehicle, 'kuzzleInfo', 'dummy3')
    }
  }
})

new Vue({
  el: '#app',
  store,
  router,
  components: { App },
  template: '<App/>'
})

И мой файл компонента, где я его читал:

computed: {
    selectedVehicle (val) {
      return this.$store.state.selectedVehicle
    }
  },
  ...

И другой, где я его установил:

computed: {
    selectedVehicule: {
      get: function () {
        return this.$store.state.selectedVehicle
      },
      set: function (newVal) {
        this.$store.commit('setSelectedVehicle', newVal)
      }
    }
  }

Ответы [ 2 ]

0 голосов
/ 11 августа 2020

Похоже на орфографическую ошибку - вы используете в последнем вычисленном разделе «selectedVehicule» вместо «selectedVehicle». Просто опустите "u".

0 голосов
/ 10 июля 2020

заполните выбранный автомобиль всеми 3 свойствами в объекте состояния

state: {
    selectedVehicle: {
        items: '',
        id: '',
        kuzzleInfo: ''
    },
}

вы можете попробовать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...