routine이 todo랑 비슷한 결,,
🐶 원하는것
routine list에서 edit 버튼을 누른다
-> 모달팝업이 뜬다.
-> 내용을 수정한다.
-> 수정된 내용으로 상태가 업데이트 된다.
우선, edit 버튼을 만들어주었다.
그 다음에는 handleClickOpenEditModal(id) 을 눌렀을 때 모달이 열린다.
routine리스트인 routines에서 id가 같은 routine을 찾는다.
const routine = routines.find((it) => it.id === id);
모달 열때 사용했었던 요 옆에 코드를 활용해서 모달을 열어준다.
내용 수정해주고~
이제 수정된 내용으로 상태가 업데이트 되어야하기 때문에
기존에 add 버튼에서 사용중인 handleSubmit에다가 코드를 좀 추가해준다.
const handleSubmit: React.FormEventHandler<HTMLFormElement> = (event) => {
event.preventDefault();
if (!title || !time) {
return;
}
if (id !== 0) {
onEditRoutine({
id,
title,
startTime: time,
time: duration
});
return;
}
const objRoutine = {
id: 1,
title,
startTime: time,
time: duration
};
onAddRoutine(objRoutine)
setTitle('');
}
Props 타입에도 onEditRoutine을 추가해준다.
이렇게 수정을 다 하고 루틴 아이디가 같으면 덮어씌우고 같지 않다면 원래 루틴을 루틴리스트에 넣어주었다.
'L'etude' 카테고리의 다른 글
Javascript : 프로토타입 (0) | 2022.06.07 |
---|---|
react useRef 사용해보기 (0) | 2022.06.07 |
Type '{ routine: Routine | undefined; open: boolean; onClose: () => void; onAddRoutine: (routine: Routine) => void; onEditRoutine: (routine: Routine) => void; }' is not assignable to type 'IntrinsicAttributes & Props'. typescript 에러 해결하기 (0) | 2022.05.24 |
vscode : npm i & npm ci 차이 (0) | 2022.05.23 |
Javascript : this (0) | 2022.05.23 |
댓글