SWR mutate 사용하기
2022. 6. 15. 18:49
반응형
새로운 데이터를 생성한 후, 그 데이터를 사용자에게 refetch 해주고 싶었다.
//커스텀훅으로 만들어뒀던 useSWR(...)에서 mutate를 꺼내옴
const { mutate } = useCollectionList({ size: 9999, classroom_id: classroomId })
...
//post API 요청 보내고 응답 받는 부분
try {
const response = await request().post('/classrooms/add', body)
if (response.status === 201) {
//await를 붙여주어야 한다(중요). 안그러면 navigate로 이동 후 무한돌돌이...
await mutate()
navigate(-1)
}
} catch (error) {
throw error
}
...
하지만 만약 커스텀훅에서 mutation을 꺼내올 수 없는 경우에는, 전역변수 mutate를 사용하도록 한다.
(사용법이 약간 다름)
//글로벌 mutate
const { mutate } = useSWRConfig()
//api 호출부
try {
const response = await request().post('/classrooms/add', body)
if (response.status === 201) {
//첫번째 인자는 key값,
//두번째인자는 보낼데이터(없으면 undefined 넣어주고, 만약 어떤 array 값을 넣어주면 그걸 사용자에게 보여준다)
//세번째인자의 오브젝트값이 중요!
await mutate('/classrooms', undefined, { revalidate: true })
navigate(-1)
}
} catch (error) {
throw error
}
반응형
'한 걸음 > React & Next.js' 카테고리의 다른 글
[React + Typescript] 카카오 SDK를 이용한 공유기능 구현 (0) | 2022.09.13 |
---|---|
[React / Typescript / Three.js] 움직이는 기본 상자 만들기 (0) | 2022.08.24 |
[VScode] React snippet(템플릿) 설정으로 반복 타이핑을 피해보자 (0) | 2022.04.18 |
스토리북(storybook) 적용하기 (0) | 2022.04.01 |
[React] useContext로 다크모드 구현 (0) | 2022.02.13 |