해결된 질문
작성
·
62
·
수정됨
0
현재 제가 동물 앨범 만들기 전체 파일 구조와 index.html 코드는 이렇게 작성하였으며, 강의 내용과 동일하게 작성하였습니다
api.js 코드와 TabBar.js 코드입니다. 강의 내용과 동일하게 작성하였습니다.
content.js 코드와 index.js 코드를 작성하였습니다.
마지막으로 App.js 코드를 작성하였지만, 동물 사진이 웹 화면에 출력이 되지 않고 있습니다!
import TabBar from "./components/TabBar.js";
import Content from "./components/Content.js";
import { request } from "./components/api.js";
export default function App($app) {
this.state = {
currentTab: window.location.pathname.replace("/", "") || "all",
photos: [],
};
//tabBar
const tabBar = new TabBar({
$app,
initialState: this.state.currentTab,
onClick: async (name) => {
history.pushState(null, null, `/${name}`);
this.updateContent(name);
},
});
//content
const content = new Content({
$app,
initialState: [],
});
//state
this.setState = (newState) => {
this.state = newState;
tabBar.setState(this.state.currentTab);
content.setState(this.state.photos);
};
this.updateContent = async (tabName) => {
console.log(tabName);
const name = tabName === "all" ? "" : tabName;
const photos = await request(name);
this.setState({
...this.state,
currentTab: tabName,
photos: photos,
});
};
window.addEventListener("popstate", () => {
this.updateContent(window.location.pathname.replace("/", "") || "all");
});
const init = async () => {
this.updateContent(this.state.currentTab);
};
init();
}
답변 2
1
안녕하세요, 안연수님! 질문 감사합니다.
우선 올려주신 코드를 살펴보면, api 파일에서 request 함수 앞에 export를 작성하지 않은 것 같습니다.
해당 부분 수정해보시면 될 것 같습니다.
프로젝트에 사용되는 모든 코드는 github와 강의 핸드북으로 제공해드리고 있습니다.
따라서 코드 작성 이후 오류가 발생한다면, 안연수님의 실력 향상을 위해
작성한 코드와 제가 제공해드리는 코드를 직접 비교해보시거나,
console.log를 사용해서 직접 오류를 찾아 수정해보시는 것을 추천드립니다 🙂
0
안녕하세요, 인프런 AI 인턴입니다. 안연수님. 질문 주셔서 감사합니다.
현재 작성하신 코드에서 “동물 앨범 만들기”가 제대로 작동하지 않는 문제를 겪고 계시군요. 이 문제의 원인은 여러 가지가 있을 수 있습니다. 아래는 몇 가지 가능성 있는 문제와 해결 방법입니다:
파일 경로 문제: import
구문에서 경로가 올바르게 설정되어 있는지 확인해보세요. 특히, 각 컴포넌트의 파일 경로가 정확한지 다시 한 번 검토해 주세요.
API 문제: request
함수가 제대로 작동하는지 확인해야 합니다. 서버에서 데이터를 가져오는 부분에서 오류가 발생하면 데이터가 제대로 로딩되지 않을 수 있습니다. console.log
를 통해 API 응답 데이터를 로깅해보세요.
DOM 요소 연결 문제: 코드에서 DOM에 실제로 app
으로 지정된 요소가 존재하는지 확인해보세요. index.html
에 <div id="app"></div>
가 올바르게 존재해야 합니다.
콘솔 로그 확인: 각 중요한 단계에 console.log()
를 추가하여 데이터 흐름을 직접 확인해보세요. 예를 들어, this.updateContent
함수 내부에 console.log(tabName, photos)
등을 추가해서 데이터 로드를 확인할 수 있습니다.
로컬 서버 문제: 서버가 정상적으로 실행되고 있는지 확인하세요. 서버가 예상대로 동작하지 않으면, 요청을 받지 못해 콘텐츠가 로딩되지 않을 수 있습니다.
이 문제와 유사한 문제를 겪으신 분들의 질문도 참고해 보시면 도움이 됩니다:
onClick
함수 실행과 관련된 구체적인 문제를 다루고 있으며, 컨텍스트 변경에 관한 답변을 제공하고 있습니다.문제 해결에 도움이 되기를 바랍니다. 코드 혹은 설정에서 문제가 지속된다면, 추가적인 오류 메시지나 코드 부분을 공유해 주시면 더 자세한 도움을 드릴 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.