반응형
리렌더링 방지를 하는게 아니라면 아래와 같은 코드는 쓰지 않는게 좋다.(리렌더링 방지를 원한다면 useRef가 적합하다)
const [application, setApplication] = useState<ApplicationType>({
name: "june",
product: "SEB",
});
// application을 직접 변경하는 것은 리렌더링을 일으키지 않음
application.name = "seung";
코딩단계에서 막을 수 있게 타입스크립트로 타입가드를 하자.
readonly를 이용해서 직접 변경을 막은 코드이다.
interface ApplicationType {
readonly name: string;
readonly product: string;
}
const [application, setApplication] = useState<ApplicationType>({
name: "june",
product: "SEB",
});
application.name = "seung"; // 읽기 전용 속성이므로 'name'에 할당할 수 없습니다.ts(2540)
반응형
'개발 > React' 카테고리의 다른 글
함수 컴포넌트와 클래스 컴포넌트 (0) | 2024.01.11 |
---|---|
JSX Element React Element ReactNode 차이 (0) | 2024.01.08 |
state 업데이트는 비동기라기보다는 스냅샷이다. (1) | 2024.01.07 |
zustand에서 functional update가 가능한 setState만들기 (0) | 2023.11.06 |
JSX문법에서 단일 root 태그로 래핑해야 하는 이유 (0) | 2023.10.14 |