반응형
    
    
    
  가져온 후 내보낸 모듈이 정의되지 않았습니다.
이 모든 것이 유효했습니다만, 변경을 가했습니다만, 서비스가 정의되어 있지 않습니다.
_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
반응형
    
    
    
  'programing' 카테고리의 다른 글
| vue $nextTick을 사용하는 것과 vuejs에서 setTimeout 0을 사용하는 것의 차이점은 무엇입니까? (0) | 2022.07.02 | 
|---|---|
| 동일한 catch 절에서 여러 Java 예외를 잡을 수 있습니까? (0) | 2022.07.02 | 
| VueJ가 0이면 입력 값이 표시되지 않음 (0) | 2022.07.02 | 
| set/getsockopt SO_SNDBUF 사이즈가 2배가 되는 것을 이해한다. (0) | 2022.07.02 | 
| 변경된 파일만 다시 컴파일하도록 Makefile을 만들려면 어떻게 해야 합니까? (0) | 2022.07.02 |