< form >을 사용할 때, < button type="submit" >을 함께 사용하면 리덕스 데이터가 초기화 되는데, 왜 초기화 되는 지 생각해봅시다.
< form > 내부의 < button >은 클릭시 submit 이벤트가 발생되는데 데이터를 submit하기 위해 페이지를 리로딩하고 그 페이지가 리로딩되면 리덕스 store의 state 값이 초기화가 된다
< form > 태그는 입력 양식 전체를 감싸는 태그로 그 안에 포함된 input,selet 등 의 태그를 컨트롤 하는 역할을 한다.
리액트에서는 보통 state로 form에 value를 관리하고 sumbit 이벤트로 원하는 동작을 실행한다
<button name="hi" onClick={preventSubmit}>
...
function preventSubmit(e){
e.preventDefault();
// e.preventDefault()로 기본 이벤트를 막는다
console.log(e);
}
<Link to="/">Home으로 가기</Link>
function App() {
let navigate = useNavigate();
function handleClick() {
navigate("/home");
}
return (
<div>
<button onClick={handleClick}>go home</button>
</div>
);
}
애플리케이션의 상태를 저장하고
getState()를 통해 상태에 접근하게 하고
dispatch(action)를 통해 상태를 수정할 수 있게 하고
subscribe(listener)를 통해 리스너를 등록합니다.