리액트 리렌더링 안되게 하는법
318
작성한 질문수 2
문제가 발생한 코드 로직에 대해 설명드리자면 유저가 어떤 상태 선택창을 띄우고 상태를 변경하면 서버로 요청을 보내고 응답이 와서 변경된 데이터로 새로 렌더링 되는 로직입니다. 그런데 여기서 저는 상태 선택창을 닫히지 않게 하고 싶습니다. 그런데 useState를 사용하면 리렌더링 됐을 때 당연히 상태가 초기화 돼서 선택창이 사라질 것이기 때문에 useRef를 사용했습니다.
아래가 그 코드인데 useRef로 했음에도 리렌더링 되고 초기 상태인 false로 바뀌어버립니다. 그래서 상태창을 유지하지 못하고 있습니다. 해결법 좀 아시는 고수님들 도움 좀 주셨으면 좋겠습니다 ㅠ
const maintainStatus = useRef(false);
const changeStatus = (status: LocationStatusType) => {
mutate({
locationStatus: status
}, {
onSuccess: async (res) => { // 성공시
await queryClient.invalidateQueries({ queryKey: homelessListQueryKey }); // 쿼리 최신화
maintainStatus.current = true;
console.log("maintainStatus.current:", maintainStatus.current) //true 출력
}
})
}
useEffect(() => {
console.log("Updated maintainStatus.current:", maintainStatus.current); // false 출력
}, [maintainStatus.current]);
답변 1
plan mode를 진행하는것에 있어서
0
9
1
클로드 코드 설치 관련
0
15
1
스타터킷 중요도에 대한 질문입니다.
0
15
1
mission12-01 guide.md파일 누락
0
14
1
슬라이드 오타
0
23
0
전체적인 개발에 대해 문의드립니다.
1
39
1
챌린지 시작일 문의
0
39
0
줄바꿈 시 \ 필수인가요?
0
49
2
2605 이후 최신 클로드코드 강의 추가 부탁드립니다.
0
50
2
커리큘럼 문서 제공받을 수 있을까요?
0
44
1
ThemeProvider를 이용해서 NextThemeProvider를 따로 생성하여 Layout.tsx에 적용하는 이유는 뭘까요?
0
31
1
mission 09-01 을 수행할 수 없어요
0
33
1
outputStyle 설정하는데 어디서 문제일까요?
0
30
3
test.txt파일 삭제시 rm명령어이니 클로드의 질문이 있어야 한다고 하셨는데
0
23
2
검은화면
0
32
3
강의교환링크안열려요.....
0
35
2
영상재생에러 [확인부탁드려요!!!]
0
27
2
클로드 채팅에서 코드로 넘어가기
0
42
2
Context API vs Zustand 그리고 Auth
0
39
2
110강부터 따라가기가 힘듭니다...
0
65
2
커서에서 붙여넣기
0
42
2
깃허브 사용시 폴더경로 관련질문
0
29
2
[reducer] 기능별 폴더 구조 설계/ 파일 분리로 유지 보수 가능한 아키텍처 구축
0
29
2
순수 함수 / 순수 컴포넌트
0
27
1





