가수면
ref를 props로 넘겨줄 때 본문
import { forwardRef } from "react";
import styled from "styled-components";
type SliderNumProps = {
page: number;
maxPage: number;
opacity: number;
};
const SliderNum = forwardRef<HTMLUListElement, SliderNumProps>(({ maxPage, page, opacity }, ref) => {
let sliderNumBox = [];
for (let i = 1; i < maxPage + 1; i++) {
sliderNumBox.push(<li key={i} className={i === page ? "active" : ""} />);
}
return (
<SliderNumBox ref={ref} className="hover-Btn" opacity={opacity}>
{sliderNumBox}
</SliderNumBox>
);
});
export default SliderNum;
const SliderNumBox = styled.ul<{ opacity: number }>`
position: absolute;
margin-top: -10px;
right: 12.5%;
display: flex;
gap: 1px;
opacity: ${(props) => props.opacity};
li {
width: 12px;
height: 2px;
background-color: #4d4d4d;
}
.active {
background-color: #aaa;
}
`;
최말단 컴포넌트에 forwardRef<요소, 기타props>() 형식을 취함
interface SliderButtonProps extends ArrowProps {
testRef?: React.RefObject<HTMLDivElement>;
prevSlide?: () => Promise<void>;
nextSlide?: () => Promise<void>;
}
React.RefObject<HTMLDivElement> 또는
React.MutableRefObject<HTMLDivElement> 형식을 취함
'JavaScript > TypeScript' 카테고리의 다른 글
타입스크립트 선언 파일 (0) | 2023.06.14 |
---|---|
event 타입 (0) | 2023.05.08 |
타입 심화 (0) | 2023.04.12 |
넘어오는 데이터가 두 타입 중 하나일 때 (0) | 2023.04.05 |
타입스크립트에서 children (0) | 2023.04.01 |
Comments