티스토리 뷰
< 첫번째 에러 >
Warning: A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen.
component가 uncontrlloed 상태라고 한다.
처음에 무슨말인지 몰라 여기저기 콘솔을 찍어봤다.
const handleAdd = (todo) => {
setTodos([...todos, todo]);
};
setTodos를 console.log로 바꾸면 에러도 안나고 값을 너무 잘 가져왔다.
그렇다면 setTodos가 문제인가? 하고 생각을 해봐도 도저히 문제가 없다고 생각했다.
한번더 파고들어서 todos를 만드는게 문제인가? 하고
안에들어가는 객체의 상태를 변경해주는 또 다른 useState를 보니 초기값이 아무런 값도 없었다.
초기 값을 설정해 줬더니 조용해졌다..
< 두번째 에러 >
Warning: Each child in a list should have a unique "key" prop.
각각의 리트에는 유닠한 key가 필요하다고 한다.
그래서 음 하고 봤더니 < ul > 로만 감싸져 있었다.
그래서 < li > 로 한번 더 감싸주었더니 세 번째 에러가 나타났다.
< 세번째 에러 >
Warning: validateDOMNesting(...): <li> cannot appear as a descendant of <li>
< li > 는 < li > 안에 존재할 수 없다고 해서 아닌데? 버그인가? 하고 찾아보니
입력한 값을 뱉어주는 녀석은 < li > 로 잘 감싸져 있었다.
그래서 벗겨 냈더니 다시 두번째 에러가 발생되었다.
< 두번째 에러 >
Warning: Each child in a list should have a unique "key" prop.
그렇다면 다시 한번 코드를 살펴보자.
분면 key는 uuid를 통해 랜덤한 key를 부여하고 있다.
다시 한번 콘솔을 흩뿌려보자..
todos를 찍어보면 모든 객체가 나오게 된다.
자 그럼 todos에 있는 객체를 하나씩 가지고 와서 todo.id가 isdone.id와 같으면 isdons 아니면 유지
그런데 todo를 변경했는데 todos를 내놓아라..
어떤 key인지 알 수 없을만 했도다.
todos를 todo로 변경하면 아쭈아쭈 잘 작동한다!!!
'Error' 카테고리의 다른 글
Uncaught TypeError: Cannot read properties of null (reading 'useContext') (0) | 2024.02.13 |
---|---|
Uncaught runtime errors: Cannot read properties of undefined (reading 'map') (0) | 2024.02.03 |
Uncaught runtime errors: is not iterable (0) | 2024.02.02 |
2024. 01. 30 Router 설정 중 에러 (2) | 2024.01.30 |
2024. 01. 08 React, TypeScript 빨간줄 오류... (0) | 2024.01.08 |
- Total
- Today
- Yesterday
- 유효성검사 css
- readme 역할
- Fetch와 Axios 의 장단점
- 에러모음집
- Warning: validateDOMNesting(...): <li> cannot appear as a descendant of <li>
- Warning: A component is changing an uncontrolled input to be controlled.
- 별점만들기
- axiosinstance 사용 시 토큰 사용 법
- 유효성검사
- readme 작성 방법
- 영화별점만들기
- readme 작성해야 하는 이유
- axios 설치하기
- Warning: Each child in a list should have a unique "key" prop.
- axios instance 작성하기
- simple Icon 사용방법
- nextjs 토큰 만료처리하기
- 영화 별점
- axios 사용하기
- styled component GlobalStyle 사용방법
- git cache
- styled component 설치방법
- axios CRUD
- readme작성해보기
- readme 이미지 추가 방법
- 별점 색채우기
- styled component 사용방법
- styled component 조건부 사용방법
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |