我正在尝试访问 React 中 div 的宽度和高度样式,但遇到了一个问题。这是我目前得到的结果:
componentDidMount() { console.log(this.refs.container.style); } render() { return ( <div ref={"container"} className={"container"}></div> //set reff ); }
这有效,但我得到的输出是一个 CSSStyleDeclaration 对象,在 all 属性中我可以找到该对象的所有 CSS 选择器,但它们都没有设置。它们都设置为空字符串。
这是 CSSStyleDecleration 的输出:http://pastebin.com/wXRPxz5p
如能得到任何有关了解实际样式(事件继承的样式)的帮助,我们将不胜感激!
要访问应用于元素的实际样式(包括继承的样式),您应该使用函数,getComputedStyle而不是直接访问style元素的属性。该style属性仅返回直接应用于元素的内联样式,而不是继承或计算的样式。
getComputedStyle
style
您可以按照以下方式修改代码以访问 div 的计算样式container:
container
componentDidMount() { const containerStyles = window.getComputedStyle(this.container); console.log(containerStyles); } render() { return ( <div ref={(ref) => (this.container = ref)} className={"container"}></div> ); }
在此更新版本中:
this.container
componentDidMount
window.getComputedStyle
containerStyles
通过使用getComputedStyle,您将能够看到应用于container元素的所有样式,包括继承的样式。