programing

가져온 후 내보낸 모듈이 정의되지 않았습니다.

copyandpastes 2022. 7. 2. 21:42
반응형

가져온 후 내보낸 모듈이 정의되지 않았습니다.

이 모든 것이 유효했습니다만, 변경을 가했습니다만, 서비스가 정의되어 있지 않습니다.

_service 폴더에 기본 서비스가 있습니다.

import config from 'config';
import { authHeader } from '../_helpers';

export const subscriptionService = {
    getFullMenu
};

function getFullMenu() {
    const requestOptions = {
        method: 'GET',
        headers: authHeader()
    };

    return fetch(`${config.apiUrl}/subscriptions/fullmealselection`, requestOptions).then(handleResponse);
}

function logout() {
    // remove user from local storage to log user out
    localStorage.removeItem('user');
}

function handleResponse(response) {
    return response.text().then(text => {
        const data = text && JSON.parse(text);
        if (!response.ok) {
            if (response.status === 401) {
                // auto logout if 401 response returned from api
                logout();
                location.reload(true);
            }

            const error = (data && data.message) || response.statusText;
            return Promise.reject(error);
        }

        return data;
    });
}

기본 모듈이 있습니다.

import subscriptionService from '../_services/subscription.service';

export const subscriptions = {
    namespaced: true,
    state: {
        fullMenu: {}
    },
    actions: {
        getFullMenu({ commit }) {
            commit('fullMenuRequest');
            subscriptionService.getFullMenu()
                .then(
                    items => commit('fullMenuSuccess', items),
                    error => commit('fullmenuFailure', error)
                );
        }
    },
    mutations: {
        fullMenuRequest(state) {
            state.fullMenu = { loading: true };
        },
        fullMenuSuccess(state, items) {
            state.fullMenu = { items: items };
        },
        fullMenuFailure(state, error) {
            state.fullMenu = { error };
        }
    }
}

앱에서 제가 전화를 걸면getFullMenu모듈상의 메서드cannot read property getFullMenu of undefined

모듈에 도달하는 것을 확인했습니다.또한 모듈에서 alert() subscription Service라고 하면 정의되지 않은 것으로 표시됩니다.뭐가 문제인지 모르겠어요.

참고로 인증 서비스는 정상적으로 동작합니다.나는 그 둘을 비교해봤지만 그들은 나에게 같아 보인다.

import { userService } from '../_services';
import { router } from '../_helpers';

const user = JSON.parse(localStorage.getItem('user'));
const initialState = user ? { status: { loggedIn: true }, user } : { status: {}, user: null };

export const authentication = {
    namespaced: true,
    state: initialState,
    actions: {
        login({ dispatch, commit }, { email, password }) {
            commit('loginRequest', { email });

            userService.login(email, password)
                .then(
                    user => {
                        commit('loginSuccess', user);
                        router.push('/profile');
                    },
                    error => {
                        commit('loginFailure', error);
                        dispatch('alert/error', error, { root: true });
                    }
                );
        },
        logout({ commit }) {
            userService.logout();
            commit('logout');
        }
    },
    mutations: {
        loginRequest(state, user) {
            state.status = { loggingIn: true };
            state.user = user;
        },
        loginSuccess(state, user) {
            state.status = { loggedIn: true };
            state.user = user;
        },
        loginFailure(state) {
            state.status = {};
            state.user = null;
        },
        logout(state) {
            state.status = {};
            state.user = null;
        }
    }
}

서비스를 이름 있는 내보내기로 내보냈지만 기본 내보내기로 가져오고 있습니다.기본 내보내기가 존재하지 않기 때문에subscriptionService정의되어 있지 않기 때문에, 에러가 발생합니다.cannot read property getFullMenu of undefined

내보내기

export const subscriptionService = {
    getFullMenu
};

Import 내용

import subscriptionService from '../_services/subscription.service';

Import 대상:

import { subscriptionService } from '../_services/subscription.service';

또는

내보내기 내용:

 export default {
     getFullMenu
 };

조회: https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/export

언급URL : https://stackoverflow.com/questions/57488617/exported-module-is-undefined-after-importing

반응형