Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

나 개발자 할래요

2024.08.14 본문

개발자 되는 법.../TIL...

2024.08.14

개발_자 2024. 8. 14. 18:55

삭제 기능 구현 중

선택된 국가명과 기존에 있는 국가명과 비교하도록 해야 하는데 c를 찾지 못해, 접근이 막혔습니다.

오 오타다 delete

 

해당 문제는 `deleteHandler`함수에서 `c`를 잘못 사용하고 있기 때문!

 

`deleteHandler` 함수는 `c`를 매개변수로 받아야 하지만, `onClick`이벤트 핸들러에서 `c`를 전달하지 않고 있습니다.

올바르게 전달하려면, 함수를 호출할 때 `c`를 인자로 전달해야 합니다.

 

 

<button onClick={deletHandler(c)}>삭제</button>

 

버튼 클릭 시에만 `deleteHandler` 함수가 실행 되어야 하지만,

이 코드는 `deleteHandler(c)`를 즉시 호출하게 돼, 버튼이 렌더링되는 시점에 `deleteHandler` 함수가 실행됩니다.

 

 

<button onClick={() => deletHandler(c)}>삭제</button>

화살표 함수를 사용하여 `deleteHandler(c)`를 호출합니다.

즉, 클릭 이벤트가 발생했을 때 화살표 함수가 실행되고 그 안에서 `deleteHandler (c)`함수가 실행되도록 합니다

 

 

 

왜 화살표 함수가 필요한가?

 

매개변수 전달

: `deleteHandler`는 삭제할 국가 객체 `c`를 매개변수로 필요로 합니다. 이벤트 핸들러로 함수 자체를 전달하면 매개변수를 전달할 수 없지만, 화살표 함수는 매개변수를 전달하면서 이벤트 핸들러를 설정할 수 있습니다.

 

지연 실행

: 이벤트 핸들러에 전달된 화살표 함수는 이벤트가 발생할 때까지 실행되지 않습니다. 즉 `deleteHandler(c)`가 직접 호출되는 것이 아니라, 버튼 클릭 시에만 호출됩니다.

'개발자 되는 법... > TIL...' 카테고리의 다른 글

2024.08.22  (0) 2024.08.22
2024.08.16  (0) 2024.08.16
2024.08.14  (0) 2024.08.14
2024.08.13  (0) 2024.08.13
2024.08.09  (0) 2024.08.09