获取 React 组件内部的调用深度

Get Call Depth Inside React Component

我正在尝试在 React 中制作一个支持嵌套组件的场景图。大致如下:

<SceneNode>
  <SceneNode>
    <Thing/>
  </SceneNode>
  <SceneNode>
    <Thing/>
  </SceneNode>
</SceneNode>

当挂载 SceneNode 时,我需要一种方法让它知道它的“深度”是多少。组件中有没有办法访问该信息?例如:

function SceneNode({children}:{children:ReactNode}) {
  const depth = useCallDepth(); // <- some magic function that lets me know the level of nesting for this node
  return <div>{children}</div>
}

注意:我尝试了以下方法:

可以为此使用上下文:Demo