//부모 컴포넌트
const [active, setActive] = useState(1)
...
<자식컴포넌트 setActive={setActive} />
//자식 컴포넌트
const 자식컴포넌트 = ({
setActive
}:{
setActive ?: Dispatch<SetStateAction<number>>;
}) =>{
...
const onClick = (click:number) =>{setActive(click)}
<button onClick={()=>onClick(2)}>클릭</button>
이렇게 작성했을 때,
onClick setActive 부분에서
Cannot invoke an object which is possibly 'undefined'
에러가 계속해서 발생한다.
undefined일 경우가 있다는 말인데, 항상 있다는 것을 알려줘야 한다.
1) const onClick = (click:number) =>{ setActive && setActive(click)}
-> setActive가 있으면!! 이라고 알려준다.
or
2) props받는 setActive ?: Dispatch<SetStateAction<number>>;
부분에서 ?
를 제거해 항상 받는 경우라고 해준다.
그럼 해결 완~