css - React:获取元素的高度,并且 this.ref 当前为空
问题描述
如何获取组件内 div 的高度?我有以下代码:
constructor(...) {
...
this.detailsRef = React.createRef();
}
render() {
return (
<div>
<span>A title</span>
<div ref={this.detailsRef}>Some details</div>
</div>
);
}
我读过你可以通过这样做来获得元素的高度:
this.detailsRef.current.clientHeight
或者
this.detailsRef.clientHeight
但是,这对我不起作用。有人有什么建议吗?
回答
好的,我没有得到高度的原因this.detailsRef.current.client
是因为我div
的ref
附件是由styled-components
. 因此,当我将样式组件 div 更改为普通 div 时,它起作用了。
解决方案
像这样:
class Test extends React.Component {
constructor(props) {
super(props);
this.headerRef = React.createRef();
}
componentDidMount() {
console.log(this.headerRef.current.clientHeight);
}
render() {
return (
<div>
<h1 ref={this.headerRef}>Grab this element</h1>
</div>
);
}
}
推荐阅读
- algorithm - 将二分搜索算法升级为更复杂的算法
- bit-manipulation - 演练:使用位操作对 2 个整数求和
- mongodb - GraphQl API 中的 AccessDenied 错误,无法弄清楚
- mobile - Anbox:在使用这些应用程序时,移动设备上是否有任何原生计算?还是整个应用程序在云上运行并流式传输?
- string - 通过 Visual Studio Code 中的热键将格式化的 PowerShell 哈希表/数组定义转换为单行(反之亦然)
- django - Django 重定向后两页
- bash - Bash 脚本 - 传递给脚本的运行函数
- visual-studio-code - VS Code - 为自定义文件扩展名应用语法高亮/格式化
- ios -
文件未找到 ??Flutter Stripe 支付 iOS 错误 - node.js - 测试从 web 应用程序到 api 的 opentelemetry