상세 컨텐츠

본문 제목

Divider - TypeScript

JavaScript

by 폴리프레임 2024. 5. 23. 08:46

본문

반응형

Divider 컴포넌트를 타입스크립트로 만들었습니다.

import React, {FC} from 'react';
import {View, ViewStyle,StyleProp } from 'react-native';
import { COLORS } from "../constants";

interface DividerProps {
  dividerStyle?: StyleProp<ViewStyle>;
  width?: number;
  orientation?: 'horizontal' | 'vertical';
  color?: string
}

const Divider: FC<DividerProps> = ({
 width = 1,
 orientation = 'horizontal',
 color = COLORS.btnLightGray,
 dividerStyle,
}) => {
 const dividerStyles: StyleProp<ViewStyle> = [
   {width: orientation === 'horizontal' ? '100%' : width},
   {height: orientation === 'vertical' ? '100%' : width},
   {backgroundColor: color},
   dividerStyle,
 ];

 return <View style={dividerStyles} />;
};

export default Divider;

1. 'react' 에서 FC를 가져 옵니다.

2. 'react-native'에서 ViewStyle 과 StyleProp 을 가져옵니다.

3. 메인 컴포넌트인 Divider를 FC<DividerProps> 로 정의 합니다.

4. props 로 받는 dividerStyle 은 배열이지만, 타입스크립트는 배열모두가 ViewStyle 또는 undefined 이면 StyleProps<ViewStyle> 로 받습니다. 이것은 싱글스타일 객체, 스타일 배열,  null/undefined 을 받을 수 있습니다.

5. const dividerStyles: StyleProps<ViewStyle> 을 적용합니다.

6. 사용

- <Divider dividerStyle= {styles.divider} width={1} />

- <Divider width={2} />

- divider: {

     marginTop: 5,

     marginBottom: 5,

},

 

'JavaScript' 카테고리의 다른 글

WebGL  (1) 2024.05.26
isNaN()  (0) 2024.05.23
(fn)() , (fn()) - IIFE - Immediately Invoked Functional Expression  (1) 2024.05.18
ES6 이후의 주요 변화 - JavaScript  (1) 2024.05.18
웹 페이지 임의 조작  (2) 2024.05.18

관련글 더보기