더북(TheBook)

예제 코드 7.6 제어 컴포넌트 구현하기

class Content extends React.Component {
    constructor(props) {
        super(props)
        this.handleChange = this.handleChange.bind(this)
        this.state = {accountNumber: ''} ---- 계좌번호 초깃값으로 빈 문자열을 설정한다.
    }
    handleChange(event) {
        console.log('Typed: ', event.target.value) ---- 콘솔에 입력한 내용을 그대로 보여준다.
        this.setState({accountNumber: event.target.value.replace(/[^0-9]/ig, '')}) ---- 입력 값에서 숫자만 걸러낸 후 상태를 갱신한다.
    }
    render() {
        return <div>
            Account Number:
            <input
                type="text"
                onChange={this.handleChange} ---- 변경을 감지한다.
                placeholder="123456"
                value={this.state.accountNumber}/> ---- value를 상태에 할당해서 엘리먼트를 제어한다.
            <br/>
            <span>{this.state.accountNumber.length > 0 ? 'You entered: ' + this.state.
            accountNumber: ''}</span> ---- 계좌번호가 빈 문자열이 아닌 경우에 출력한다. “length”는 문자열 속성으로 문자의 수를 반환한다. 값이 없는 경우에는 아무것도 출력하지 않는다.
        </div>
    }
}

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.