- bounty将在5天后过期**。回答此问题可获得+500声望奖励。Sam Hasler希望引起更多人关注此问题。
我正在尝试遍历React组件树(或者以某种方式访问所有组件),并在浏览器中创建自己的自定义UI(很可能是一个扩展)来操作不同的组件。
这是我的代码:
// const root_node = root._internalRoot.current;
const root_node = document.getElementById('root')
const renderer = window.__REACT_DEVTOOLS_GLOBAL_HOOK__.renderers.get(1);
const rendered_root_node = renderer.findFiberByHostInstance(root_node);
但它返回null。我也尝试使用findHostInstanceByFiber。
是否有任何方法可以遍历浏览器中的零部件?
1条答案
按热度按时间fnvucqvd1#
下面是一个如何遍历组件树并访问组件示例的示例:
上例对REACT_DEVTOOLS_GLOBAL_HOOK对象使用getFiberRoots方法来获取组件树的根数组。然后循环遍历根并调用遍历函数,该函数将遍历组件树并记录组件示例。
值得注意的是,此功能将来可能会更改,并且可能无法在所有环境中工作,也不建议在生产环境中使用。