【发布时间】:2019-07-06 01:47:35
【问题描述】:
我想让 div 的宽度与图像的宽度相同。这包括调整窗口大小和图像自动调整大小时。目前,我尝试使用 useState,但在调整大小时它没有响应。
const basicInfoImage = useRef();
const basicInfoText = useRef();
const [basicInfoImageWidth, setBasicInfoImageWidth] = useState();
useEffect(() => {
setBasicInfoImageWidth(
basicInfoImage.current.getBoundingClientRect().width
);
});
<img
src={profilePic}
alt="Profile Pic"
className="About-basic-info-image"
ref={basicInfoImage}
/>
<p
className="About-basic-info-text"
ref={basicInfoText}
style={{ width: basicInfoImageWidth }}
>
{basicInfoTextContent}
</p>
【问题讨论】:
-
通常,图像加载需要一些时间,在加载之前,浏览器不会知道它的大小。如果你记录
basicInfoImage.current.getBoundingClientRect().width,你会得到一个非零值吗?如果是这样,img标签有一个onload事件,见stackoverflow.com/questions/39092859/…
标签: javascript html css reactjs responsive