리액트에서 추가와 수정 페이지를 같이 쓰는 방법은 간단히 말해,
- 추가 form 컴포넌트를 만들고 (예)
ㄱ. <CreateContact>
)- 추가하기 버튼 onClick시 ㄱ. 컴포넌트를 리턴해준다
- 수정하기 버튼 onClick시 ㄱ. 컴포넌트를 리턴해주는데,
선택된 유저데이터, 수정완료시 실행될 functionselectedUserData
와onUpdateFunc
같은 state를 2. 와 달리 넣어준다.- 추가 form 컴포넌트에 초기값을
selectUserData ? selectUserData : ""
와 같이 조건 분기 해준다.
다른 세부적인 것도 조건분기로 처리를...
즉 포인트는 React 사용 전에는 추가/수정 page를 식별가능한 String state를 넣어줘서 조건분기 했던거 같은데, React를 사용함으로써, 2,3과정 처럼
동일한 추가form 컴포넌트라도 각각 import 해서 (2에서 1개, 3에서 1개) 다른 방식으로 동일 컴포넌트 jsx를 사용해 줄수 있다.
추가 컴포넌트를 만들고
추가하기 버튼 클릭시 사용되는, import한 createContact 컴포넌트.
sidebar는 아래 사진처럼 랜더링 되있다.
selectContact
와 수정 완료 function인 onUpdateContact
가 전달된걸 알수 있다.CreateContact
를 약간 다르게 사용하여 추가와 수정 페이지를 공통으로 사용한다.CreateContact
페이지에서 조건분기 부분 :selectContact
데이터가 있나 없나에 따라 onSubmit 내부에 기본 데이터 형식을 다르게 두고 있다. 아래CreateComponent
를 모달로 난 사용했는데, open, close 함수, 거기에 따른 state는 추가, 수정 페이지 둘다 각각 만들어 줘야 한다.