index.tsx
간략한 코드 흐름 설명
로그인 폼을 작성한후 제출을 누르면 onSubmit 함수가 실행 -> axios를 통해 back 서버에 email,passowrd 데이터와 함께 post 요청
-> post요청에 대해 응답이 오면 revalidate()함수 실행 -> revalidate()함수 실행하면 useSWR("http://localhost:3095/api/users",fetcher) 다시 실행 -> fetcher 함수 실행
fetcher함수에서 전달받은 url을 통해 axios.get요청으로 로그인한 유저의 정보 받아온 후, useSWR에서 data의 프로퍼티로 사용할 수 있게 return
내가 봉착했던 문제
fetcher함수를 호출한 뒤, 로그인한 user에 대한 값이 index.tsx의 data 값에 전달이 되지 않았다.
문제의 원인
const fetcher = (url:string) => {
axios
.get(url,{
withCredentials:true,
})
.then((response)=>response.data);
}
//서버와 클라이언트의 도메인이 다를 경우 서로 쿠키를 공유할 수 없기때문에, withCredentials를 사용해준다.
화살표 함수로 axios의 응답값을 바로 return 해주어야 하는 데 {}를 사용해서 return이 되지 않았다.
깨달은 점 : 화살표 함수를 사용할때, {} 사용을 주의해야 겠다.
'2022년' 카테고리의 다른 글
추가 기능 구현(1) (0) | 2021.12.13 |
---|---|
Redirect, useHistory 무엇을 쓸까? (0) | 2021.12.13 |
[CodeUp] 1099 : 성실한 개미 문제 (0) | 2021.12.13 |
2 .실행 컨텍스트,호이스팅 (0) | 2021.12.12 |
Components와 Props (0) | 2021.12.11 |