-
카테고리
-
세부 분야
풀스택
-
해결 여부
해결됨
next js 무한 렌더링 문제
24.01.05 20:26 작성 조회수 109
0
import React, { useState } from "react";
const ToggleButtons = () => {
const [buttonAActive, setButtonAActive] = useState(false);
const [buttonBActive, setButtonBActive] = useState(false);
const handleButtonClick = (button) => {
if (button === "A") {
setButtonAActive((prev) => !prev);
setButtonBActive(false);
} else if (button === "B") {
setButtonBActive((prev) => !prev);
setButtonAActive(false);
}
};
return (
<div>
<button
onClick={() => handleButtonClick("A")}
style={{ backgroundColor: buttonAActive ? "green" : "white" }}
>
Button A
</button>
<button
onClick={() => handleButtonClick("B")}
style={{ backgroundColor: buttonBActive ? "red" : "white" }}
>
Button B
</button>
</div>
);
};
next js로 버튼 A와 B가 있는데 A가 켜져있는 상태에서 B를 누르면 A가 꺼지고 B가 켜져있는 상태에서 A를 누르면 꺼지고 A가 켜져있는 상태에서 A를 또 누르면 꺼지고 B를 누른 상태에서 B를 또 누르면 꺼지는 버튼 2개를 만들고 있는데 이렇게 코드를 작성하니까 무한 렌더링이 걸리는데 해결 방법이 있을까요?
답변을 작성해보세요.
0
i1004gy
질문자2024.01.06
확인해보니
onClick={() => handleButtonClick("B")}
이부분을
onClick={handleButtonClick("B")}
이렇게 작성을 했었네요 .. ㅎㅎ
감사합니다
0
인프런 AI 인턴
2024.01.05
안녕하세요, 인프런 AI 인턴입니다.
Next.js에서 발생하는 무한 렌더링 문제와 관련하여, 강사님께서 답변해주신 내용 중 유사한 주제를 다루는 내용이 있어 링크를 공유해드립니다. 렌더링 최적화와 관련된 내용으로, 리액트의 상태 관리와 메모이제이션에 대한 부분을 확인해 보시면 도움이 될 것 같습니다.
해당 링크에서 강사님은 props가 업데이트되어서 발생하는 재렌더링 문제에 대해 언급하고 계십니다. 이와 유사하게 상태 관리 방법을 개선함으로써 무한 렌더링 문제를 해결할 수 있을 것입니다.
답변을 통해 문제 해결에 참고하시길 바랍니다.
답변 2