获取 React 应用程序的根 DOM 节点
Get the root DOM node of a React application
findDOMNode
可用于查找给定组件的 DOM 节点,但我不确定如何遍历树以找到最初传递给 ReactDOM.render()
.
例如
从 App 中发现元素 root
,我们有:
ReactDOM.render(
<App />,
document.getElementById('root')
);
React 是否在内部存储它?
您究竟为什么要尝试查找具有 "root"
ID 的元素? render
函数的第二个参数是让你知道的那个元素。
但真正的问题是你想要 React 组件还是它也被绑定的实际 DOM 元素,因为这之后的一切都是 VDOM(虚拟 DOM) .
从技术上讲,同一页面上可能有多个 React 应用程序 运行( 不同的版本/微前端 ),因此,我不知道其中的原因其中一个特定的容器知道它属于哪个容器,但是有一种方法可以找到根容器,假设它是<body>
元素的直接子节点:
const root = [...document.body.children].find(elem => elem._reactRootContainer)
findDOMNode
可用于查找给定组件的 DOM 节点,但我不确定如何遍历树以找到最初传递给 ReactDOM.render()
.
例如
从 App 中发现元素 root
,我们有:
ReactDOM.render(
<App />,
document.getElementById('root')
);
React 是否在内部存储它?
您究竟为什么要尝试查找具有 "root"
ID 的元素? render
函数的第二个参数是让你知道的那个元素。
但真正的问题是你想要 React 组件还是它也被绑定的实际 DOM 元素,因为这之后的一切都是 VDOM(虚拟 DOM) .
从技术上讲,同一页面上可能有多个 React 应用程序 运行( 不同的版本/微前端 ),因此,我不知道其中的原因其中一个特定的容器知道它属于哪个容器,但是有一种方法可以找到根容器,假设它是<body>
元素的直接子节点:
const root = [...document.body.children].find(elem => elem._reactRootContainer)