gigupc11 / LV4

0 stars 0 forks source link

모달에서 데이터를 저장한 후 바로 refetch가 되지 않습니다. #1

Open gigupc11 opened 1 year ago

gigupc11 commented 1 year ago

안녕하세요 매니저님! R반 김시옥 입니다.

Modal.jsx 안에 21번 줄이있는

const mutation = useMutation(addProject,{
    onSuccess:() => {
      queryClient.invalidateQueries("project")
      window.location.reload('/')
      onClose(false)

    }
  }

이 코드에 invalidateQueries가 작동을 하지않습니다..아래에 reload를 대체로 넣긴했는데 이건 아닌거 같아서 해결해보려다가 모르겠어서 이슈로 남깁니다...ㅠㅠ 위에 올려드린 코드는 모달에서 저장하기를 누르면 데이터가 추가되는 코드이고

const projectEditMutation = useMutation(editProject,{
  onSuccess:() => {
    queryClient.invalidateQueries("project")

    onClose(false)
  }
}

이 코드는 데이터를 수정하는 코드입니다 같은곳에서 작동하고 코드도 같은데 수정하면 refetch가 되고 추가하면 왜 안되는지 도저히 모르겠습니다..

skdud4659 commented 1 year ago

mutation은 project를 추가하고 projectEditMutation는 project를 수정하는 기능을 수행하는게 맞을까요?

프로젝트가 추가되었을 때에 홈에 있는 리스트가 새로고침 되어야 하고 프로젝트를 조회하는 getProject의 queryKey는 'projects'입니다,,!

projectEditMutation는 project 상세 페이지에서 호출되니 정상적으로 수정하였을 때 queryClient.invalidateQueries("project")를 통해서 상세 데이터를 다시 불러올 수 있는데 mutation으로 project를 새로 추가해도 기존 상세 페이지에 머물러 있기 때문에 호출되어도 크게 변화가 없는게 당연하고 main 페이지에서 project를 추가했을 때에는 queryClient.invalidateQueries("project")로 queryKey값이 달라서 불러오지 않은 것 같네요,,!