store.dispatch не работает в состоянии vuex

#javascript #vue.js #state #vuex

Вопрос:

Привет , я пытаюсь проверить токен при загрузке страницы с помощью vue js, после проверки я хочу сохранить пользователя в состоянии с помощью магазина vuex . Но у меня есть это хранилище ошибок.отправка не работает.

Мой служебный файл выглядит так.

 const store = require('../store/index.js');

const api_url = 'http://127.0.0.1:8080/'

exports.checkValidation = () => {
    return new Promise((resolve, reject) => {
        try {
            let token = localStorage.getItem('t');
            console.log('found token', token);
            const headers = {
                "Content-Type": "application/json",
            }
            const body = {
                token: token
            }
            const url = api_url   'checkvalidation'

            axios.post(url, body, headers)
                .then((result) => {
                    console.log(result.data)
                    store.dispatch('setLoggedInUserData', result.data.user)
                    resolve(result.data)
                })
                .catch((err) => {
                    console.log(err)
                    reject('Error')
                })
        } catch (e) {
            reject(e)
        }
    })
}
 

и store/index.js выглядит так

 import { createStore } from 'vuex'
import states from './states';
import mutations from './mutations';
import actions from './actions';
import getters from './getters';

export default createStore({
    state: states,
    mutations: mutations,
    actions: actions,
    modules: {},
    getters: getters
})
 

любая помощь будет признательна .

Комментарии:

1. пробовать import store from '../store'

2. файл export не кажется правильным в вашем сервисном файле — он не ESM соответствует формату, который вы используете для import ing. Таким образом, вы либо используете exports -> require (CommonJS), либо export -> import (ESM) — вы не можете их смешивать.

3. Да, я исправил это, перейдя на ES6 . Счастливое Кодирование