useState
를 사용하여 사이드바의 열림/닫힘 상태 관리.const Sidebar = () => {
const [isOpen, setIsOpen] = useState(false);
const toggleSidebar = () => {
setIsOpen(!isOpen);
};
return (
<div className={`sidebar ${isOpen ? 'open' : ''}`}>
<button onClick={toggleSidebar}>Toggle</button>
<nav>
<ul>
<li>Home</li>
<li>About</li>
<li>Contact</li>
</ul>
</nav>
</div>
);
};
useContext
를 사용하여 데이터를 가져오는 과정에서 오류 발생.React Hooks 호출 문제
useContext
를 통해 context가 없을 경우 null
을 반환하는 로직이 있어 Hooks가 조건부로 호출됨.const CardTitle = () => {
const context = useContext(ImageContext);
const [isLoading, setIsLoading] = useState(true);
const [lineClamp, setLineClamp] = useState<string>("line-clamp-3");
const { title = "", subtitle = "" } = context || {};
useEffect(() => {
// ...
}, [title]);
if (!context) {
return null;
}
};
타입 오류 문제
CardSubTitle
컴포넌트에 필요한 props인 text
와 lineClamp
를 전달하지 않아 발생.SmCard
에서 CardSubTitle
에 필수 props를 전달.<CardSubTitle text={subtitle} lineClamp="line-clamp-3" />