문제 상황

원인

📝 실행 순서 및 “증상” 해결 방법

ProjectEditorLayout.tsx : 175 에서

layer = LayerTreeStore 생성

➡️ TreeView → SubTreeView로 layer 전달

➡️ LayerTreeNodeStore : 154 에서 expand 실행


➡️ 다시 TreeView

➡️ SubTreeView ( 이 때 expanded 가 중간에 false로 렌더링됨..

⬅️ 여기에서 expand를 requestIdleCallback에 넣어주면 증상이 해결됨

해결 방법

requestIdleCallback(() => {
  nodes.get(id)?.expand();
});

🤔 고민이 되는 부분

<aside> ❓

의문

배운 점

  1. mobX는 transformer라는 함수를 이용해서 input에 대한 output이 관측되는 동안 동일한 인풋에 대해 동일한 아웃풋을 리턴하도록 만들어준다.
  2. 우리의 레이어 트리는 이러한 transformer의 결과물임.
  3. 하지만 이 레이어트리를 관측(observe) 하는 것은 레이어 트리의 렌더링된 컴포넌트들