-
Notifications
You must be signed in to change notification settings - Fork 1
TroubleShooting
Seunghyo Ku edited this page Dec 7, 2020
·
1 revision
UPDATE, PLACEMENT 혼용
root가 h1 → div 일때 PLACEMENT 이어야하는데 UPDTE가 됨
functional Compoent 변화 부분 오류
element() → element(
- 함수형의 return 값에 { array.prototype.map을 활용한 렌더링 }을 구현.
- setState 사용 시 연쇄적인 호출
- fragment를 활용한 돔 구조 변경 최소화
- 순서 바꾸기 경우의 수
- 이벤트 처리 로직
- 이벤트를 삭제하고 다시 생성하게 함.
- 이벤트가 삭제되지 않고 중복으로 쌓이는 문제를 해결.
- 함수형 컴포넌트 여러 개가 있어도 동작할 수 있게 수정
- useContext의 반환 값으로 무엇을 줘야 하는가?
- Provider의 범위 문제
- 전체 style의 rerendering 문제
- createTextElement에서 undefined나 null을 처리하고자 한 조건문이 "0"을 잘못된 경우로 처리하였음.
- console.error()를 해주면 더 좋을 것.
- ?.를 인식하지 못하는 문제로 인해 (트랜스파일링 문제) && 연산자 사용
- [fix] deletion 시에 sibling 추적이 안되는 문제 해결
- https://github.com/boostcamp-2020/Project18-D-WEB-Boostact/commit/a1258f3a8f4169de1c71d883c500d3050ee58678
- child가 여럿이 삭제된 경우 sibling을 타고 따라갈 수 없는 것이 문제여서, 추적이 안 되는 경우를 삭제된 경우로 가정하였다.
- 이것이 된다고 확신할 수 있는 경우는, 중간의 child가 삭제된 경우, 그 옆 child가 update로, 맨 마지막 child가 deletion으로 처리되기 때문.
- UPDATE 시에 CSS 소멸 문제
- PLACEMENT에서만 Style을 잡아주고 있었음.
- determindState 함수에서 vChild의 부모가 없는 경우를 체크
- ROUTER, LINK, CONTEXT에 대한 분기 처리
- 이로 인해 presibling을 찾던 logic을 변경하여, 위 셋 중 하나인 경우 그 다음을 탐색하게 하였고,
- 부모를 탐색할 때에는 component의 부모를 저 셋 중 하나인 경우의 부모로 찾아가게 함.
- useEffect에 적용이 안되던 문제를 해결
- children이 없는 경우에도 빈 객체를 생성하는 문제를 해결
- null과 undefined로 서로 타입이 다른 경우를 해결
- 삭제 함수가 재귀로 호출되는 것을 해결.
- children에 빈 배열이 들어왔을 때 자식이 1개인 경우로 처리 ([[]])
- flat 함수로 해결
- event 변경 시 props가 바뀌지 않았어도 전체 rerendering 되는 문제