Я не могу получить ни мутацию, ни действие для передачи данных в состояние приложения.Я даже не уверен, правильно ли я их вызываю, несмотря на то, что потратил пару часов на чтение документов 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);
, поэтому проблема не в подключении.