javascript - 为什么`ref.current.clientHeight`总是19
问题描述
<div className="scale" ref={ref}>
如果我用 CSS将高度设置为 400 像素,我希望ref.current.clientHeight
是 400 像素,但它始终是 19。
如何获得 div 的高度?
我的计划是将它设置为 100% 并且仍然知道 div 的高度。
.scale {
height: 400px;
display: block;
}
import React, { useState, useLayoutEffect, useRef } from "react";
function Scale() {
const [height, setHeight] = useState(0);
const ref = useRef<HTMLDivElement>(null);
useLayoutEffect(() => {
if (ref.current && ref.current.clientHeight) {
setHeight(ref.current.clientHeight);
}
});
return (
<div className="scale" ref={ref}>
{height}
</div>
);
}
export { Scale };
它总是 19 的原因是所有的父 div、body 和 Html 都需要将它们的高度设置为100vh
解决方案
推荐阅读
- javascript - 如何在 Vue Js 中进行选择性悬停?
- javascript - 保护用户定义的 javascript 函数以保护 node.js 服务器
- r - 如何只保留R中单列中的数字
- css - 自动完成时浮动标签的不良行为
- mysql - 如何在 Mysql 中修复此错误。“错误 1452 (23000):无法添加或更新子行:外键约束失败。”
- r - 在 for 循环内的向量中获取向量的名称
- python-3.x - 如何在while循环中自动更改变量值?
- java - 我无法将 3d 对象绑定到另一个对象的中心
- android - Kotlin 中构造函数的 Koin 注入
- c++ - 如何将模板参数包扩展为一系列模板参数?