출처: https://www.codecademy.com

defaultProps 설정하기

    import React from 'react';
    import ReactDOM from 'react-dom';
    
    class Button extends React.Component {
      render() {
        return (
          <button>
            {this.props.text}
          </button>
        );
      }
    }
    
    ReactDOM.render(
      <Button />, 
      document.getElementById('app')
    );

위 코드에서 <button> 태그부분에 {this.props.text} 에 해당하는 text 부분이 어디에도 선언되어 있지 않다면, 해당 버튼은 그냥 공백 버튼을 나타내게 된다.

defaultProps 을 미리 선언하여 초기값을 설정해두자

클래스명.defaultProps = { props명: 값 };

    import React from 'react';
    import ReactDOM from 'react-dom';
    
    class Button extends React.Component {
      render() {
        return (
          <button>
            {this.props.text}
          </button>
        );
      }
    }
    
    // Set defaultProps equal to an object:
    Button.defaultProps = { text: 'I am a button' };
    
    ReactDOM.render(
      <Button />, 
      document.getElementById('app')
    );

실행화면

Override

초기값을 설정한 후 직접 ReactDOM.render()에서 text를 선언하면 override 된다.

    import React from 'react';
    import ReactDOM from 'react-dom';
    
    class Button extends React.Component {
      render() {
        return (
          <button>
            {this.props.text}
          </button>
        );
      }
    }
    
    // Set defaultProps equal to an object:
    Button.defaultProps = { text: 'I am a button' };
    
    ReactDOM.render(
      <Button text="override" />, 
      document.getElementById('app')
    );

실행화면