Не удается получить мутацию или действие Vuex для передачи данных в состояние - PullRequest
1 голос
/ 04 апреля 2019

Я не могу получить ни мутацию, ни действие для передачи данных в состояние приложения.Я даже не уверен, правильно ли я их вызываю, несмотря на то, что потратил пару часов на чтение документов Vuex.

Я начал создавать мутацию, чтобы просто обновить свое состояние при срабатывании события @click, но когда это не сработало, я попробовал действие и получил тот же результат: ничего.

Пример того, как я вызываю действие:

<div v-for="(data, index) in dataList" :key="index">
  <div @click="updateDataSomewhereElse(data)">  // action called here
    // do some other stuff
  </div>
</div>

Пример того, как яотправляю действие из моего однофайлового компонента:

// some code
methods: {
  updateDataSomewhereElse: function(data) {
    this.$store.dispatch('setData', data); // action dispatched here
  }
}

Пример моего действия и мутации:

// state code
mutations: {
  updateStateData(state, data) {
    state.data = data;
  }
},
actions: {
  setData({commit}, data) {
    commit('updateStateData', data);
  }
}

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

Что я сделал не так?

Редактировать - Подробнее:

Пример моего начальногосостояние:

state: {
  data: 'something'
}

Из моего файла main.js:

import Vue from 'vue';
import App from './App.vue';
import router from './router';
import store from './store';

new Vue({
  router,
  store,
  render: h => h(App),
}).$mount('#app');

Я знаю, что он ничего не возвращает в моих devtools Vue, так как он показывает только мое начальное состояние, и я не могу сделатьручная фиксация / отправка оттуда.Кроме того, операторы console.log как в моем методе, так и в моем действии не запускаются.У меня есть файл store.js, подключенный к Vue с Vue.use(Vuex);, поэтому проблема не в подключении.

1 Ответ

0 голосов
/ 04 апреля 2019

Я исправил эту проблему, просто сделав это:

<div v-for="(data, index) in dataList" :key="index">
  <div>
    <span @click="updateDataSomewhereElse(data)">do some other stuff</span>
  </div>
</div>

Я не уверен, почему или как это ответ, но теперь я пытаюсь обновить свое состояние.

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