mou*_*una 2 javascript flexbox reactjs react-hooks use-ref
我想获取动态 div 绘制后的宽度,但我不知道如何实现。这就是我正在做的:
const ref=useRef();
useEffect(()=>{
console.log('REF',ref.current.offSetWidth)
},[])
return (
<div ref={ref}>
</div>Run Code Online (Sandbox Code Playgroud)
我尝试了 window.resize eventListener,但只有在屏幕尺寸发生变化时才会触发它。我的问题是,在屏幕上渲染后,是否可以获取 div 的宽度?我没有预先设置宽度,它只是在弹性框中占据父元素的 100%
小智 5
您可以使用ResizeObserver,React 的一个简单实现可能如下所示:
import {useRef, useEffect} from 'react'
export default function App() {
const divRef = useRef()
useEffect(() => {
new ResizeObserver(() => {
console.log('Width: ', divRef.current.clientWidth)
}).observe(divRef.current)
}, [])
return (
<div ref={divRef}>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)