[React] 다양한 자료형 프로퍼티 사용하기

2023. 1. 6. 00:14·React

시작


리액트에서 프로퍼티에 int형이나 boolean형의 값을 전달할 때는 큰따옴표를 사용할 수 없다.
그냥 큰따옴표에 값을 전달하면 문자형으로 인식이 되어 버린다.
때문에 자료형을 지정하여 프로퍼티를 전달할 수 있는 방법을 소개한다.

import PropTypes from 'prop-types';

먼저 해당 라이브러리를 import 해야한다.
해당 글에서는 ChildComponent라는 임의의 컴포넌트를 만들어 사용했다.


객체 구조 분해 할당식 사용


import React, { Component } from 'react';
import PropTypes from 'prop-types';


class ChildComponent extends Component {
    render() {
        const {
            numValue,
            arrayValue,
            objValue,
            nodeValue,
            funcValue,
        } = this.props;
        let bool = '';
        if(this.props.boolValue === true){
            bool = 'true'
        }
        else{
            bool = 'false'
        }
        return (
            <div className='child'>
                <span>불리언값: {bool}</span>
                <span>숫자값: {numValue}</span>
                <span>배열값: {arrayValue}</span>
                <span>객체값: {String(objValue)}</span>
                <span>노드값: {nodeValue}</span>
                <span>함수값: {String(funcValue)}</span>
            </div>
        );
    }
}

ChildComponent.propTypes = {
    boolValue: PropTypes.bool,
    numValue: PropTypes.number,
    arrayValue: PropTypes.arrayOf(PropTypes.number),
    objValue: PropTypes.object,
    nodeValue: PropTypes.node,
    funcValue: PropTypes.func,    
}

export default ChildComponent;

먼저 객체 구조 분해 할당식을 사용하여 프로퍼티로 전달될 값들을 지역 변수로 정의한다.
객체 형태로 자료형을 정의한다.
이제 부모 컴포넌트인 App.js에서 값을 전달할 것이다.


import './App.css';
import ChildComponent from './03/ChildComponent';

function App() {
  return (
    <div className="App">
      <ChildComponent
        boolValue = {true}
        numValue = {1}
        arrayValue = {[1, 2, 3]}
        objValue = {{name: '제목', age: 24}}
        nodeValue={<h1>노드</h1>}
        funcValue={() => { console.log('Hello World');}}
      />
    </div>
  );
}

export default App;

각 변수에 자료형에 해당하는 값을 전달했다.
위 코드는 간단한 예제 코드일 뿐이며, 실무에서는 실수를 줄이기 위해 변수에 객체를 담아서 전달하는 방식을 선호한다.


결과


결과

결과는 다음과 같다.
ChildComponent로 넘긴 값이 잘 전달되는 것을 확인할 수 있다.

'React' 카테고리의 다른 글

[React] Redux를 사용해서 간편하게 모달(modal) 구현하기  (0) 2024.03.13
[React] 컴포넌트의 생명주기(Lifecycle)  (0) 2023.02.10
[React] 프로퍼티에 필수, 기본값 지정 / 자식 프로퍼티 사용  (0) 2023.01.13
[React] 프로퍼티(props) 기본  (0) 2023.01.04
[React] 리액트 시작하기  (0) 2023.01.03
'React' 카테고리의 다른 글
  • [React] 컴포넌트의 생명주기(Lifecycle)
  • [React] 프로퍼티에 필수, 기본값 지정 / 자식 프로퍼티 사용
  • [React] 프로퍼티(props) 기본
  • [React] 리액트 시작하기
MaKa_
MaKa_
이게 왜안될까요
  • MaKa_
    벌레 잡는 사람
    MaKa_
  • 전체
    오늘
    어제
    • 공부 (46)
      • CS (18)
        • 자료구조(data structure) (7)
        • 알고리즘(Algorithm) (6)
      • React (6)
      • React Native (2)
      • Next.js (5)
      • Backend (3)
      • 이야기 (3)
        • 회고 (2)
        • 일상 (1)
      • 기타 (7)
      • 알고리즘 문제 (2)
        • 백준 (0)
        • 프로그래머스 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
MaKa_
[React] 다양한 자료형 프로퍼티 사용하기
상단으로

티스토리툴바