프로그래밍 공부/Javascript
submit 이벤트와 preventDefault
Kevinkb
2021. 10. 3. 22:21
React에서 TodoList에 새로운 todo를 추가하는 기능을 구현하고 있었는데, input에 내용을 입력하고 추가를 위해 버튼을 클릭하니 내용이 추가되는 즉시 페이지가 reload 되는 문제가 생겼다.
return (
<form id='todoForm' className='todo-form' onSubmit={handleSubmit}>
<input
type='text'
placeholder='Add a todo'
value={inputText} name='todoInput'
className='todo-input'
onChange={handleChange} />
<button className='todo-button'>Add todo</button>
</form>
);
확인해보니 submit
이벤트는 이벤트가 발생하면 창이 reload 되는 특성을 가지고 있었던 것이다. 그래서 이벤트의 전파를 막지않고 이벤트의 동작을 취소하기 위해 preventDafault
를 사용했다. 그 결과 창이 reload 되지 않지만 새로운 todo는 list에 추가된 것을 확인할 수 있었다.
const handleSubmit = (e) => {
onSubmit(inputText);
setInputText('')
e.preventDefault(); // reload를 막는다.
};