[React] useMemo 사용으로 인한 삽질기
2023. 12. 7. 10:59
반응형
문제상황
- 드롭다운과 콘텐츠 영역이 있음 (드롭다운 안의 option들은 api reponse로 받아온 data)
- 드롭다운을 바꿀 때, 진짜 바꿀 거냐고 한 번 물어봐주는 confirm창이 뜸
- confirm에서 확인을 누르면 콘텐츠 영역이 해당 내용으로 교체 / 취소누르면 기존 콘텐츠 영역에 그대로 남아있어야 함
- 하지만 드롭다운에서 '세번째 것'을 선택하면 컨펌창이 뜨고, 콘텐츠영역에는 기존 데이터인 '두번째 것'이 남아있지만...
select 영역의 텍스트가 새로 선택한 '세번째 것'으로 곧바로 바뀌어버렸다.
드롭다운의 options를 구성하는 부분
const { data: siteData } = useGetSiteList();
const siteOption = useMemo(() => {
return siteData?.data.map((site) => ({
label: site.siteName,
value: site,
}));
}, [siteData]);
위와 같이 구성하고 있었는데, 이전에 연산한 siteOption값을 재사용하기위해 useMemo로 감싸준 게 문제였다.
api data가 변하지 않았으니 컨펌창이 뜨기 전에 드롭다운 select 영역이 바로 바뀌어버렸던 것.. useMemo를 없애니 해결됐다.
반응형
'한 걸음 > React & Next.js' 카테고리의 다른 글
[vite + typescript + pnpm] npm publish 후 다른 프로젝트에서 install 했을 때, 모듈을 찾을 수 없다는 에러 (1) | 2024.01.03 |
---|---|
[React] form submit 버튼이 form 바깥에 위치해야 하는 경우 (1) | 2023.12.07 |
[ag-grid] 테이블 cell에 전달된 data(params) 꺼내 가공해서 사용하기 (0) | 2023.10.27 |
[REACT/JS] 서버에서 Blob 형태로 받아온 파일을 string 값으로 변환해 화면에 그려주기 (0) | 2023.10.19 |
[axios] get method > parameter가 있을 때만 요청 보내기 (0) | 2023.10.08 |