리액트 리렌더링 안되게 하는법
326
작성한 질문수 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
Cursor 프로젝트 목록 및 작업 환경 동기화 문의
0
4
0
파워쉘, 터미널
0
12
1
스킬과 서브에이전트 병행 사용 질문
0
12
1
강의 잘 들었습니다.
0
14
1
터미널에서 커서 AI 직접 실행
0
21
2
해결했습니다
0
27
1
이런 경우는 어떤 조치를 취해야할까요?
0
28
2
hooks 설정이 안되요
0
43
2
영상 최신으로 엡데이트 요청
0
66
2
소스 코드가 회사 보안 프로그램에 막혀서 안 보여요.
0
52
2
claude code 상태표시줄 궁금합니다!
0
49
2
수파베이스 데모 버전
0
39
1
10월 15일 삭제예정 강의 문의
0
39
1
설치의 필요성
0
75
2
modal-root질문드립니다.
0
61
2
모달 여러개 질문드립니다
0
52
2
지금 강의가 어려우신분 추천드립니다.
0
50
1
기존의 완성된 CRUD의 Build.gradle에 security관련 dependency를 추가하면 문제가 생깁니다.
0
61
2
시작하기전에 질문 드립니다.
0
65
2
tsconfig.app.json 파일 설정(경로 별칭 옵션) 관련 질문입니다.
0
68
2
output style이 안나와요
0
54
2
강의제목에 10/15일 삭제라고 나와있는데,
0
48
1
CRA ? 질문입니다
0
48
1
교제 노션 복제 방법 문의
0
56
2





