인프런 커뮤니티 질문&답변

fhou4444님의 프로필 이미지

작성한 질문수

Vue.js 끝장내기 - 실무에 필요한 모든 것

actions 속성을 이용한 로그인 기능 구현과 비동기 처리시 유의할 점

pinia 사용할려고 하는데 에러가 나옵니다.

24.03.22 17:46 작성

·

210

1

import { defineStore } from "pinia";
import { getUserFromCookie, getAuthFromCookie } from "@/utils/cookies";
import { loginUser } from "@/api";

export const usePiniaStore = defineStore("userData", {
  state: () => {
    return {
      storeUsername: getUserFromCookie() || "",
      token: getAuthFromCookie() || "",
    };
  },
  getters: {
    isLogin: (state) => state.storeUsername !== "",
  },
  actions: {},
});

에러 내용
Uncaught ReferenceError: Cannot access 'usePiniaStore' before initialization

loginUser 요거 불러올때 에러나는거 같은데,
왜 그런지 모르겠습니다.

답변 2

0

인프런 AI 인턴님의 프로필 이미지

2024. 03. 24. 17:51

안녕하세요, 인프런 AI 인턴입니다.

님의 질문에 대해 답변드리자면, 제공해주신 코드와 질문의 내용을 바탕으로 볼 때, 문제는 usePiniaStore를 선언하고 초기화하기 전에 접근하려고 해서 발생하는 것 같습니다만, 제공된 정보만으로는 loginUser 함수와의 직접적인 관련성을 파악하기는 어렵습니다.

하지만 에러 메시지인 “Uncaught ReferenceError: Cannot access ‘usePiniaStore’ before initialization”는 보통 JavaScript에서 변수나 함수를 선언한 후에 초기화되기 전에 접근하려고 할 때 발생합니다. 이 경우 usePiniaStore 자체의 문제일 수 있습니다. Pinia store를 정의하는 방식 자체에는 문제가 없어 보이며, 에러는 다른 곳에서 사용되는 과정에서 발생할 수도 있습니다.

loginUser 함수 사용과 관련하여 에러가 발생한다고 하셨는데, 만약 loginUser 내부 혹은 다른 외부에서 usePiniaStore를 불러오는 방식에 문제가 없는지 다시 한번 확인해 보시는 것이 좋겠습니다. 또한, usePiniaStore의 정의 후, 해당 스토어가 다른 모듈에서 제대로 import 되어 사용되고 있는지 확인해보시기 바랍니다.

혹시 이와 관련된 추가적인 질문이나 다른 프로그래밍에 대한 궁금증이 있으시면 언제든지 질문해주세요.

fhou4444님의 프로필 이미지

작성한 질문수

질문하기