게시글
질문&답변
jotai로 변경했을 때 코드
아하 네네 이후 강의들어보시면 받아오는 주소를 따로 빼게되거든요 저는 최종코드라 좀 다르긴한데 우선 공유드릴게요 !surveyState.jsimport { atom } from 'jotai'; import getSurvey from '../../../survices/getSurvey'; const surveyState = atom(async (get) => { const res = await getSurvey(window.location.pathname.split('/')[2]); return res.data; }); export default surveyState;getSurvey.jsimport mainApi from './apis/mainApi'; function getSurvey(surveyId) { return mainApi.get(`/surveys/${surveyId}`); } export default getSurvey;mainApi.jsimport axios from 'axios'; const mainApi = axios.create({ baseURL: 'http://localhost:3001', }); export default mainApi; 추가적으로 제가 헤맸던부분은 questionLengthState.js인데 이건 atomWithQuery 얘 설치하셔야돼요 ! 강의 내용엔 제가 작성한 코드처럼 api를 직접 호출하지않고 import해서 사용하는데 이상하게 그렇게 하면 오류가 나서 저는 직접호출했어요 ! import { atomWithQuery } from 'jotai-tanstack-query'; import getSurvey from '../../../survices/getSurvey'; const questionLengthState = atomWithQuery(() => ({ queryKey: ['surveyData'], queryFn: async () => { try { const res = await getSurvey(window.location.pathname.split('/')[2]); // API 직접 호출 return res.data?.questions?.length ?? 0; // 방어 코드 추가 (questions가 없을 경우 0 반환) } catch (error) { console.error('❌ 설문 데이터를 가져오는 중 오류 발생:', error); return 0; // 오류 발생 시 기본값 0 반환 } }, suspense: true, // Suspense 활성화하여 로딩 상태 자동 처리 })); export default questionLengthState;해보시고 모르시겠는거 알려주시면 또 공유드릴게요 ~!
- 0
- 2
- 226
질문&답변
jotai로 변경했을 때 코드
어떤 부분에서 막히셨을까요 ? 알려주시면 코드 공유해드릴게요
- 0
- 2
- 226