리액트 리렌더링 안되게 하는법
309
작성한 질문수 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
클로드 데스크앱과의 차이
0
0
0
nmp run build의 기능
0
2
1
plan mode 개발 계획안 확인 불가
0
4
2
명시적 타입 선언(콜론 타입 선언)과 as 타입 단언 차이
0
9
1
max x5 플랜을 결제했습니다.
0
16
1
클로드 초기 설정
0
16
1
사용자 스코프 설정 파일 적용 문제
0
10
1
클로드코드 유료플랜 할인 방법이 있을까요?
0
29
0
API Error : 400 에러의 원인과 해결방법이 궁금합니다!!
0
19
2
퍼미션 권한 설정 문의
0
22
2
커서에서 shift+enter가 안됩니다.
0
24
2
mcp 설치를 못하겠어요
0
37
2
라이브러리 관련 질문 있습니다!
0
28
2
output-styles은 Claude Code의 공식 기능이 아니라고 하는데 혹시 변경된걸까요?
0
26
2
클로드 변경
0
26
2
/config 에서 output-style 을 변경
0
25
1
한국어 문제
0
28
2
Node.js 관련 질문드립니다.
0
31
3
클로드 버전업 설치
0
28
2
쿠폰 문의 드립니다.
0
21
2
13강 프로젝트 생성 Next.js 설치이슈
0
27
3
Shell Command: Install 'cursor' command 진행에서 막혔습니다
0
28
3
74. 데이터 캐시 - 1 (이론) 강의 영상 누락
0
29
1
Agent team / subagent 생성시 재사용 가능 여부
0
32
2





