Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 유틸리티타입은 공식문서 자주 보자
- 로버트 C마틴
- 나는 flux좋아...
- 에릭 노먼드
- 쏙속 들어오는 함수형코딩
- 큰돌의 CS책
- 흥달쌤
- 출처 : 한입크기로 잘라먹는 타입스크립트
- 출처는 코딩애플
- https://product.kyobobook.co.kr/detail/S000001952246
- 클린코드다시읽기
- 리엑트를 다루는 기술
- 오종택개발자님
- 출처 : 코딩앙마
- 갈길이 멀구나
- 쏙쏙들어오는함수형코딩
- 저자: 유인동
- 함수형 코딩
- 출처는 코딩앙마
- 출처 : 코딩애플
- 쏙쏙 들어오는 함수형 코딩
- 에릭 노이먼
- 김영한쌤
- 출처 : https://www.boostcourse.org/
- 이웅모
- 자바스크립트 딥다이브
- 에릭노이먼
- 쏙쏙 들어오는 함수형코딩
- 생코님Redux
- 출처 : 자바스크립트 딥다이브
Archives
- Today
- Total
틈틈히 메모중
[오늘의 Next.js] Warning: Cannot update a component (Router) while rendering a diff 본문
[오늘의 공부]/Next.js
[오늘의 Next.js] Warning: Cannot update a component (Router) while rendering a diff
돈워리비햅삐 2024. 6. 23. 07:13아래와 같이 코드를 짰는데 버튼을 누르지 않아도 router.push('/')가 실행되어버렸다.
'use client';
import { useRouter } from 'next/navigation';
const DetailLink = () => {
let router = useRouter();
return <button onClick={router.push('/')}>버튼</button>;
};
export default DetailLink;
위 코드의 문제는 onClick 핸들러에서 router.push 메서드를 직접 호출하는 방식이어서,
렌더링 즉시 router.push 메서드를 바로 실행되어 버린 것이다.
router.push 메서드를 함수로 감싸서 버튼 클릭 시에만 호출되도록 수정하면 된다.
'use client';
import { useRouter } from 'next/navigation';
const DetailLink = () => {
const router = useRouter();
const handleClick = () => {
router.push('/');
};
return <button onClick={handleClick}>버튼</button>;
};
export default DetailLink;
'[오늘의 공부] > Next.js' 카테고리의 다른 글
[오늘의 Next.js] middleware에서 jwt토큰방식의 session조회하고 싶을때 (0) | 2024.06.26 |
---|---|
[오늘의 Next.js] Warning: Extra attributes from the server: cz-shortcut-listen (0) | 2024.06.21 |