부모 컴포넌트에 상태가 하나 있는데, 그게 바뀔 때마다 자식들이 다 리렌더되길래 무거운 자식 하나를 React.memo로 감쌌습니다. 근데도 부모가 리렌더될 때마다 이 자식이 계속 다시 그려져요. React DevTools의 Highlight updates로 보면 매번 깜빡입니다.
자식에 넘기는 props는 이렇게 생겼어요.
<HeavyList
data={items}
style={{ marginTop: 8 }}
onSelect={(id) => setSelected(id)}
/>data는 그대로고 style이나 onSelect도 겉보기엔 안 바뀌는데 왜 memo가 안 먹는 걸까요? memo가 원래 이런 걸 막아주는 거 아니었나요?
댓글 0