Я использую laravel, vue и vuex в другом проекте с почти идентичным кодом, и он отлично работает.Я пытаюсь адаптировать то, что я сделал там, к этому проекту, используя этот код в качестве шаблона, но я продолжаю получать сообщение об ошибке:
[vuex] unknown action type: panels/GET_PANEL
У меня есть index.js в каталоге магазина, который затем импортируетМодули хранилищ в пространстве имен, чтобы сохранить порядок:
import Vue from "vue";
import Vuex from "vuex";
var axios = require("axios");
import users from "./users";
import subscriptions from "./subscriptions";
import blocks from "./blocks";
import panels from "./panels";
Vue.use(Vuex);
export default new Vuex.Store({
state: {
},
actions: {
},
mutations: {
},
modules: {
users,
subscriptions,
blocks,
panels
}
})
Panel.js:
const state = {
panel: []
}
const getters = {
}
const actions = {
GET_PANEL : async ({ state, commit }, panel_id) => {
let { data } = await axios.get('/api/panel/'+panel_id)
commit('SET_PANEL', data)
}
}
const mutations = {
SET_PANEL (state, panel) {
state.panel = panel
}
}
export default {
namespaced: true,
state,
getters,
actions,
mutations
}
Ниже приведен раздел скрипта из моего компонента vue:
<script>
import { mapState, mapActions } from "vuex";
export default {
data () {
return {
}
},
mounted() {
this.$store.dispatch('panels/GET_PANEL', 6)
},
computed:
mapState({
panel: state => state.panels.panel
}),
methods: {
...mapActions([
"panels/GET_PANEL"
])
}
}
</script>
И вот соответствующий код из моего app.js:
import Vue from 'vue';
import Vuex from 'vuex'
import store from './store';
Vue.use(Vuex)
const app = new Vue({
store: store,
}).$mount('#bsrwrap')
UPDATE :: Я попытался просто записать начальное состояние из vuex, и я получаю: Ошибка в подключенном хуке: "ReferenceError: панельне определено. Я попытался создать другие, очень базовые компоненты, используя другое хранилище модулей, и там тоже не повезло. Я проверил свою последнюю версию vuex, 3.1.0, последнюю. Кажется, что-то в app.js или хранилище, так как проблема сохраняетсячерез несколько модулей.