SSAFY

[PJT] 이슈 기록 및 해결

suwonieee 2023. 5. 22. 11:02

SSAFY 관통 프로젝트로 영화 추천 App을 만드는 중이다.

메인 페이지(MovieView)에서 로그인을 하려고 했는데, 로그인 후 MovieView로 이동해야 해서 NavigationDuplicated: Avoided redundant navigation to current location: 오류를 띄웠다. 같은 페이지로 router.push를 사용할 때 나오는 오류이다.

함수를 두 개 만들어서 각각 경로를 지정해주거나, 한 로직을 사용할 때는 변수를 하나 더 받아와서 불필요한 로직을 줄이고 최적화할 수 있을 거 같은데… 우선은 구현 가능하도록 만들었다. 여유가 남는다면 수정해야지… 아래 코드는 차이점이라도 있지 login actions들은 차이점도 없다. 너무 비효율적인 상황(05/21)이다.

SAVE_TOKEN(state, {token , username}){ //local에 저장하기
      state.token = token
      state.username = username
      router.push({name : 'MovieView'})
    },
    SAVE_TOKEN_FROM_MV(state, {token, username}){
      state.token = token
      state.username = username

SAVE_TOKEN도 두 개...

    LogIn(context, payload){
      const username = payload.username
      const password = payload.password

      axios({
        method : 'post',
        url : `${API_URL}/accounts/login/`,
        data : {
          username, password
        }
      })
      .then((res)=>{
        context.commit('SAVE_TOKEN',  { token: res.data.key, username })
      })
      .catch((err)=>{
        console.log(err)
      })
    },
    LogIn_fromMV(context, payload){
      const username = payload.username
      const password = payload.password

      axios({
        method : 'post',
        url : `${API_URL}/accounts/login/`,
        data : {
          username, password
        }
      })
      .then((res)=>{
        context.commit('SAVE_TOKEN_FROM_MV',  { token: res.data.key, username })
      })
      .catch((err)=>{
        console.log(err)
      })
    },

로그인 로직도 두 개... 최적화가 하고 싶다