반응형
onClick
react에선 이벤트 함수들은 'on~'으로 시작한다. 때문에 click 이벤트를 발생시키려면 onClick 이벤트를 호출해야하는데 onClick을 사용할때 함수명을 clickHandler 또는 clickHandler() 로 선언하는것에 차이가 있다.
보통 react에선 ()를 통해 함수를 식별하기 때문에 ()괄호를 붙여서 함수를 이벤트에 넣은 경우 JSX가 읽혀질때 click이벤트로 같이 호출된다. 때문에 click 시에만 동작하게 하려면 괄호를 제거하고 사용해야한다.
👉 예시
import React from "react";
import Card from "../UI/Card";
import ExpenseDate from "./ExpenseDate";
import "./ExpenseItem.css";
// 취향에 따라 function / const 로 선언할 수 있다.
const ExpenseItem = (props) => {
const clickHandler = () => {
console.log("Click");
};
return (
<Card className="expense-item">
<ExpenseDate date={props.date} />
<div className="expense-item__description">
<h2>{props.title}</h2>
<div className="expense-item__price ">${props.amount}</div>
{/*
clickHandler 에 ()를 붙이면 안되는 이유
JSX 는 () 로 함수를 판단하기 때문에 load 될때 실행된다
*/}
<button onClick={clickHandler}>Change Title</button>
</div>
</Card>
);
};
export default ExpenseItem;
반응형
'쬬의 React' 카테고리의 다른 글
[React] next-i18next error / i18next Text content did not match. Server: "introMessage" Client: (0) | 2023.06.28 |
---|---|
[React] useEffect 와 CleanUp 작동방식 이해하기 + input 입력완료 후 감지 코드예시 (0) | 2023.04.09 |
[React] 렌더링 상태 체크하기 (크롬 익스텐션 활용) (0) | 2023.04.09 |
[React] input 상태 업데이트 useState,useRef (0) | 2023.04.08 |
[React] createPortal 사용해 효율적으로 모달 관리해주기 (0) | 2023.04.08 |