
개발 환경에서는 정상적으로 동작하지만, 배포 환경에서는 정상적으로 동작하지 않는다.
const validChildren = Children.toArray(children).filter(
(child) =>
isValidElement(child) &&
(
child.type as {
name: string;
}
).name === 'Button'
) as ReactElement[];
if (validChildren.length === 0) {
throw new Error('ButtonGroup 컴포넌트는 Button 컴포넌트를 포함해야 합니다.');
}
isValidElement 가 개발 환경에서는 먹히지 않나?const validChildren = Children.toArray(children).filter(
(child) =>
isValidElement(child) &&
(
child.type as {
name: string;
}
).name === 'Button'
) as ReactElement[];
console.log(validChildren);

const validChildren = Children.toArray(children).filter((child) => {
console.log(child);
console.log(isValidElement(child));
}) as ReactElement[];

true를 출력하는 것을 보니 isValidElement 의 문제는 아니었다.
child의 속성 중 type 안의 name이 정상적으로 출력되지 않는다. 왜 “a”라 출력되는 것일까?

<Button disabled={!formState.isValid || timerStatus === 'RUNNING'} type="submit">
인증번호 전송
</Button>
<Button disabled={!formState.isValid || timerStatus === 'RUNNING'} type="submit">
인증번호 전송
</Button>
<Button disabled={!formState.isValid || timerStatus === 'RUNNING'} type="submit">
인증번호 전송
</Button>
