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