ComponentPropsWithoutRef 와 FC<PropsWithChildren<Props>> 의 차이점이 무엇인가요
저는 평소에 아래와 같이 ComponentPropsWithoutRef을 이용하여 children이나 스타일등을 props로 내려받아 사용하고 있엇는데
export interface Props {
/** 북마크 여부 */
isBookmark: boolean;
/** 클릭했을 때 호출할 함수 */
onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;
}
export const Bookmark = (Props: Props & ComponentPropsWithoutRef<"button">) => {
return (
<ButtonStyle {...Props}>
<BookmarkIcon isBookmark={Props.isBookmark} />
</ButtonStyle>
);
};
export default Bookmark;
강의에서는 아래와같이 FC<PropsWithChildren<Props>> 형식으로 받아 오던데 둘이 어떤 차이가 있을까요?
interface Props {
show: boolean;
onCloseModal: () => void;
style: CSSProperties;
closeButton?: boolean;
}
const Menu: FC<PropsWithChildren<Props>> = ({ closeButton, style, show, children, onCloseModal }) => {
const stopPropagation = useCallback<MouseEventHandler<HTMLDivElement>>((event) => {
event.stopPropagation();
}, []);
if (!show) {
return null;
}
return (
<CreateMenu onClick={onCloseModal}>
<div onClick={stopPropagation} style={style}>
{closeButton && <CloseModalButton onClick={onCloseModal}>×</CloseModalButton>}
{children}
</div>
</CreateMenu>
);
};
답변 1
2
제 타입은 정확히 Props + children인데
ComponentPropsWithoutRef<태그>는 해당 태그의 html 속성들을 의미합니다. button이면 button 태그의 속성들이겠죠. 좋은 타이핑은 아니라고 생각합니다. 쓰지 않는 속성들도 들어 있어서요.
기본 셋팅과 관련하여
0
92
1
초기 셋팅 back과 front만 남겨두고 다 지운 후 진행 방법
0
96
2
focus 시에만 화면 업데이트 되는 이유 + 해결방법
0
150
2
useEffect 개수 관리
0
110
2
라이브러리 서치 방법
0
104
2
함수 정의 패턴
0
77
1
npm run dev 에러
0
152
3
npx webpack 후 에러
0
178
2
'void' 형식 식의 truthiness를 테스트할 수 없습니다.ts(1345)
0
144
2
사용자 가입시 에러발생 (TypeError: Cannot read properties of null (reading 'addMembers')
1
178
2
초기세팅중 packge.json 에러떠요
0
156
2
CORS - Access-Control-Allow-Origin 누락 문제
0
431
3
로그인 페이지 무한 새로고침 현상
0
598
2
Module not found: Error: Can't resolve './App' 에러
0
959
1
배포 방법
0
297
2
npm run dev 시 빌드가 매우 느려졌습니다
0
990
2
alias 경로 설정 오류
0
451
2
fetcher 함수의 data 값이 두번 찍히는 이유
0
277
1
제네릭 질문
0
218
2
ts-node 대신 tsx 사용여부
0
373
1
배포 관련 질문
0
247
1
[nginx + https] 서비스를 실행하면 niginx가 아닌 서비스 화면을 보여주게 하고 싶습니다.
0
385
2
[배포하기] webpack에 aws 퍼블릭 IPv4 주소 와 포트 주소를 작성하고 나서 빌드후 실행하면 오류가 발생합니다.
0
336
1
users 호출 시 쿠키가 담기지 않는 이슈 질문드립니다.
0
247
2





