小编典典

React-从DOM元素获取组件进行调试

reactjs

为了在控制台中进行调试,React中是否有任何机制可以使用DOM元素实例来获取支持的React组件?

先前已经在生产代码中使用此问题时询问过此问题。但是,我的重点是用于调试目的的开发版本。

我熟悉ReactChrome调试扩展,但是并非在所有浏览器中都可用。结合使用DOM
Explorer和控制台,可以很容易地使用“ $ 0”快捷方式来访问有关突出显示的DOM元素的信息。

我想在调试控制台中编写如下代码:getComponentFromElement($ 0).props

即使在React开发构建中,也没有机制可以使用元素的ReactId来获取组件吗?


阅读 285

收藏
2020-07-22

共1个答案

小编典典

我刚刚阅读了文档,并且afaik没有一个外部公开的API可以让您直接进入并通过ID查找React组件。但是,您可以更新初始React.render()调用并将返回值保留在某个位置,例如:

window.searchRoot = React.render(React.createElement......

然后,您可以引用searchRoot并直接进行浏览,或使用遍历它React.addons.TestUtils。例如,这将为您提供所有组件:

var componentsArray = React.addons.TestUtils.findAllInRenderedTree(window.searchRoot, function() { return true; });

有几种内置方法可以过滤此树,或者您可以编写自己的函数以仅根据所编写的某些检查返回组件。

有关TestUtils的更多信息,请访问:https://facebook.github.io/react/docs/test-
utils.html

2020-07-22