为了在控制台中进行调试,React中是否有任何机制可以使用DOM元素实例来获取支持的React组件?
先前已经在生产代码中使用此问题时询问过此问题。但是,我的重点是用于调试目的的开发版本。
我熟悉React的Chrome调试扩展,但是并非在所有浏览器中都可用。结合使用DOM Explorer和控制台,可以很容易地使用“ $ 0”快捷方式来访问有关突出显示的DOM元素的信息。
我想在调试控制台中编写如下代码:getComponentFromElement($ 0).props
即使在React开发构建中,也没有机制可以使用元素的ReactId来获取组件吗?
我刚刚阅读了文档,并且afaik没有一个外部公开的API可以让您直接进入并通过ID查找React组件。但是,您可以更新初始React.render()调用并将返回值保留在某个位置,例如:
React.render()
window.searchRoot = React.render(React.createElement......
然后,您可以引用searchRoot并直接进行浏览,或使用遍历它React.addons.TestUtils。例如,这将为您提供所有组件:
React.addons.TestUtils
var componentsArray = React.addons.TestUtils.findAllInRenderedTree(window.searchRoot, function() { return true; });
有几种内置方法可以过滤此树,或者您可以编写自己的函数以仅根据所编写的某些检查返回组件。
有关TestUtils的更多信息,请访问:https://facebook.github.io/react/docs/test- utils.html