위와 같이 인풋에 입력한 값이 화면에 실시간으로 반영되고 초기화버튼도 만들려면 어떻게 해야할까?
다음과 같은 컴포넌트를 만들면 된다.
import React, {useState} from 'react';
function InputSample(){
const [text, setText] = useState('');
const onChange = (e) =>{
setText(e.target.value);
}
const onReset = () =>{
setText('');
}
return (
<div>
<input onChange={onChange} value={text} />
<button onClick={onReset}>초기화</button>
<div>값: {text} </div>
</div>
)
}
export default InputSample;
1. useState를 import한다.
import React, {useState} from 'react';
2. 초기값을 '' 로하는 text 변수와 setter을 만든다.
const [text, setText] = useState('');
3. input의 변화에 따라 text 값을 변경하는 함수를 만든다.
const onChange = (e) =>{ setText(e.target.value); }
4. 초기화 버튼을 누르면 text를 ''로 변경하는 함수를 만든다.
const onReset = () =>{ setText(''); }
5. UI를 만든다.
5.1. div로 감싼다.
5.2 input 태그를 만든다. 이 때 변경에 될 때마다 동작할 함수를 연결한다. 주의할 것은 value={text}를 써주어야 초기화 버튼에 반응한다. 그 이유는 onReset함수와 연결되는 부분이 {text} 이기 때문이다.
<input onChange={onChange} value={text} />
5.3 버튼을 만들고 클릭되었을 때 동작할 함수를 연결한다.
<button onClick={onReset}>초기화</button>
5.4 text 변수를 보여준다.
<div>값: {text} </div>
'웹(web) > 프론트엔드-react' 카테고리의 다른 글
리액트를 다루는 기술 absolute path 사용법 (0) | 2021.02.16 |
---|---|
리액트에서 배열 데이터를 화면에 출력하는 방법 (0) | 2020.07.04 |
Counter 컴포넌트 (0) | 2020.07.03 |
컴포넌트 사용시 내부에 컴포넌트가 있는 경우 (0) | 2020.07.03 |
리액트 컴포넌트 사용시 속성 넘겨주기 (0) | 2020.07.03 |