일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- safari wiondow.open
- styled component 작동 안될때
- 퍼블리셔
- gsap 기초
- JS
- 타입스크립트
- styled component
- React-Native IOS
- React-Native 공부
- rn webview page loading
- 프론트앤드
- SafeArea 커스텀
- styled component 작동안함
- RN navitate push
- 리액트
- 트윈맥스 기초
- js 특정 위치로 이동
- 웹뷰 페이지 로딩
- react이론
- input 숫자입력
- styled component is not working
- 임고미
- reactnative 웹뷰 페이지 로딩
- react
- gsap
- react native safeArea
- slick slider 간격
- scrollIntoView scrollTo
- React Native navigation
- React Native SafeArea Custom
Archives
- Today
- Total
개발공부 임고미
[Styled Component] 적용안되는경우1 본문
728x90
300x250
기본
1. import 안한경우
2. import 하고 component 만들어줬는데, 잘못만들어준경우
//x
const styledComponent = styled.div``;
//o
const StyledComponent = styled.div``;
이 또한 컴포넌트를 만드는것이므로, 대문자로 시작해줘야합니다.
3. 컴포넌트에 styled를 적용하고 싶은데 잘못한 경우
//x
const StyledComponent = styled.Component``;
//o
const StyledComponent = styled(Component)``;
컴포넌트는, 일반 태그들과 달리 () 괄호로 묶어줘야합니다.
4. 위와같이 잘했는데도 안되는경우
이 상황을 겪고 이 포스팅을 하게 되었는데 해결은 하였지만 모든 원인을 이해하고 해결한게 아니라 해결방법 뒤에 앞으로 풀어야할 숙제가 있습니다.
여러번의 여러뎁스로 묶인 컴포넌트의 스타일을 커스텀해주기위해 작업하던 중에 확인한 버그입니다.
styled로 잘 묶어줬고, 사용방법도 틀리지 않았고 에러도 안나는데 스타일이 그냥 적용이 안되는 상황을 확인했습니다.
해결 : className을 props으로 넘겨주면 해결 할 수 있엇습니다.
const childComponent = ({className, children}) => {
return <div className={className}>{children}</div>
}
const parent = () => {
return <childComponent> 이게 되네!! </childComponent>
}
앞으로 풀어야 할 문제
전제 : Typescript 사용
1. cildComponent의 interface를 HTMLAttribute<HTMLDivElement>로 확장을 해주었고, 해당 값을 ...rest로 풀어주면, className은 DivElement의 값이므로 자연스럽게 들어가서 문제가 해결될거라 생각했는데 제대로 작동하지 않았습니다.
interface ChildComponentProps extends HTMLAttribute<HTMLDivElement> {
children: JSX.Element | JSX.Element[];
}
const childComponent = (props: ChildComponentProps) => {
const {children, ...rest} = props;
return <div {...rest}>{children}</div>
}
2.
interface ChildComponentProps extends HTMLAttribute<HTMLDivElement> {
children: JSX.Element | JSX.Element[];
className?: stirng;
}
const childComponent = (props: ChildComponentProps) => {
const {children,className,...rest} = props;
return <div className={className} {...rest}>{children}</div>
}
위와같이 직접적으로 넣어주면 작동합니다.
앞으로 해결해야할 숙제입니다!!
참고:
https://stackoverflow.com/questions/54113367/extending-styles-with-styled-components-not-working
728x90
300x250
'리액트 > 라이브러리' 카테고리의 다른 글
[Slick-slider] React slick 세팅/간격주기/드래그 중 클릭막기 - 드래그 중 클릭막기[3] (1) | 2022.05.02 |
---|---|
[Slick-slider] React slick 세팅/간격주기/드래그 중 클릭막기 - 간격주기 / Hover효과 영역[2] (0) | 2022.04.28 |
[Slick-slider] react slickt 세팅/간격주기/드래그 중 클릭막기 [1] (0) | 2022.04.28 |
[React - Xlsx & react-csv ] 엑셀 다운로드 만들기! (4) | 2021.08.10 |
[StyledComponent] 스타일드 컴포넌트 활용하기 (3) | 2021.03.22 |
Comments