ref를 사용하는 방법은 두 가지가 있다.
콜백 함수를 통한 ref 설정
ref를 만드는 가장 기본적인 방법. ref를 달고자 하는 요소에 ref라는 콜백 함수를 props로 전달해 주면 된다. 이 콜백 함수는 ref 값을 파라미터로 전달 받는다. 내부 함수에서 파라미터로 받은 ref를 컴포넌트의 멤버 변수로 설정해 준다.
<input ref={(ref) => {this.input=ref}} />
이렇게 하면 this.input은 input 요소의 DOM을 가리킨다. ref의 이름은 원하는 것으로 자유롭게 지정할 수 있다.
createRef를 통한 ref설정
ref를 만드는 또 다른 방법은 리액트에 내장되어 있는 createRef라는 함수를 사용하는 것이다. 이 함수를 사용해서 만들면 더 적은 코드로 쉽게 사용할 수 있다.
import React, { Component } from 'react';
import './ValidationSample.css';
class ValidationSample extends Component {
state = {
password: '',
clicked: false,
validated: false,
};
handleChange = (e) => {
this.setState({
password: e.target.value,
});
};
handleButtonClick = () => {
this.setState({
clicked: true,
validated: this.state.password === '0000',
});
this.input.focus();
};
render() {
return (
<div>
<input
ref={(ref) => (this.input = ref)}
type="password"
value={this.state.password}
onChange={this.handleChange}
className={
this.state.clicked
? this.state.validated
? 'success'
: 'failure'
: ''
}
/>
<button onClick={this.handleButtonClick}>검증하기</button>
</div>
);
}
}
export default ValidationSample;
'FRONT-END > REACTJS' 카테고리의 다른 글
컴포넌트 반복 (0) | 2021.12.26 |
---|---|
컴포넌트에 ref 달기 (0) | 2021.12.24 |
ref를 사용하는 상황 (0) | 2021.12.24 |
이벤트 핸들링 (0) | 2021.12.20 |
state (0) | 2021.12.19 |