onClick = {실행될 함수}
import React from 'react'
const [value, setValue] = React.useState('');
uncontrolled input
const input = React.useRef(null);
<input type="text" ref={input} />
//input에 값을 입력하면 입력한 값이 출력되는 코드
//버튼으로 입력값 reset
const App = () => {
const input = React.useRef(null);
const [value, setValue] = React.useState('');
const handleClick = () => {
setValue(''); // Q) setValue('')가 누락되면 생기는 bug
if (input.current) { // Q) if가 누락되면 생기는 bug
input.current.value = '';
}
}
return (
<div>
현재 value는 {value}입니다.
<input type="text" ref={input} onChange={(e) => setValue(e.target.value)} />
<button type="button" onClick={handleClick}>Click to Reset</button>
</div>
);
}
Q)setValue('')가 누락되면 생기는 bug & if가 누락되면 생기는 bug
const [valueA, setValue] = React.useState('');
const handleClick = () => {
setValue('');
<input type="text" value={valueA} onChange={(e) => setValue(e.target.value)} />
값이 따로 관리되면 controlled input을 사용하면 되지 왜 uncontrolled input을 사용할까?
데이터를 입력하면 정보가 React에서 별도 처리할 필요 없이 엘리먼트에 반영되지만 특정 값을 갖도록 강제할 수 없다.