我想动态获取div
元素的宽度。使用useRef
,我可以获取div
的宽度,但是当我调整页面大小时,宽度值不会自动更新。您能告诉我需要做什么来实现这一点吗?
下面是我在Codesandbox.io中输入的代码和概述:
import React from "react";
import "./styles.css";
const App = () => {
const ref = React.useRef(null);
const [width, setWidth] = React.useState(0);
React.useEffect(() => {
setWidth(ref.current.offsetWidth);
}, [width]);
return (
<div className="App">
<h1>Hello CodeSandbox</h1>
<div
style={{
border: "1px solid red"
}}
ref={ref}
>
Width: {width}
</div>
</div>
);
};
export default App;
1条答案
按热度按时间jjjwad0x1#
如下所示修改
useEffect
,这样就可以在调整页面大小时添加一个事件侦听器。