→ onsubmit과 initialvalue를 페이지 단에서 props으로 받는다
구조
Write/EditSeriesForm(컴포넌트) > seriesForm(컴포넌트) > useForm(훅)
문제점
const handleChangeArr = (name, value) => { // prameter로 값을 받는 함수 추가
setValues({ ...values, [name]: value });
};
const handleChange = e => { // 기존의 click target내부의 값을 받는 핸들러함수
const { name, value } = e.target;
setValues({ ...values, [name]: value });
};
구조가 Component - Component - hook으로 되어있을 때 props이 내려지는 구조와 과정을 잘 이해하지 못했던 것 같다. (특히 핸들러이벤트를 내려줄 때)
- props으로 받는 handler함수는 외부의 로직을 가져와서 하위 컴포넌트에서 실행하는 것
- 상위 컴포넌트가 하위 컴포넌트의 상태를 직접 이용할 수 없기 때문
- 상위 컴포넌트가 하위 컴포넌트에게 명령하는 것(?)
- 바꾸고 싶은 상태가 속해있는 컴포넌트(또는 훅)에서 onChange함수를 실행시킴
외부 영향을 받는 컴포넌트와 순수한 컴포넌트의 범위와 기준을 정해야한다
- Presentational/Container 컴포넌트 : 컴포넌트 재사용 관점
- Container: api호출이나 전역 상태 관리 로직이 실행되는, sideEffect가 발생할 수 있는 컴포넌트
- 재사용 불가능
- page나 wrapped컴포넌트가 적합
- Presentational: 데이터나 이벤트 핸들러함수를 props으로 받아 처리하는, sideEffect가 발생하지 않는 컴포넌트
- 재사용 가능
- 스토리북에 작성하기 좋음
- React Hook: 로직 재사용 관점