function WarningBanner(props) {
if (!props.warning) {
return null; // warning이 false라면 아무것도 렌더링하지 않음
}
return (
<div>경고!</div> // warning이 true일 때만 "경고!"를 표시
);
}
<div>경고!<div>을 렌더링하여 화면에 메시지를 표시한다.function MainPage(props) {
const [showWarning, setShowWarning] = useState(false);
const handleToggleClick = () => {
setShowWarning(prevShowWarning => !prevShowWarning); // 상태를 토글
);
return (
<div>
<WarningBanner warning={showWarning} />
<button onClick={handleToggleClick}>
{showWarning ? "감추기" : "보이기"}
</button>
</div>
);
}
상태 관리: showWarning이라는 상태를 관리하며, 이 값은 경고 메시지를 표시할지 말지를 결정한다.
초기값은 false이다. 즉, 처음에는 경고 메시지가 보이지 않는다.
handleToggleClick 함수:
버튼 클릭 시 showWarning 상태를 반전 시킨다.
이전 값(prevShowWarning)을 가져와 true면 false로, false면 true로 변경한다.
렌더링 구조:
1. <WarningBanner warning={showWarning} />
<button><WarningBanner>는 아무것도 렌더링하지 않는다.<WarningBanner>가 렌더링되어 "경고!" 메시지가 화면에 표시된다.<WarningBanner>가 렌더링되지 않으므로 "경고!" 메시지가 사라진다.<WarningBanner>의 렌더링 여부가 결정된다.