반응형
가져온 후 내보낸 모듈이 정의되지 않았습니다.
이 모든 것이 유효했습니다만, 변경을 가했습니다만, 서비스가 정의되어 있지 않습니다.
_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 |