【发布时间】:2021-06-29 09:18:26
【问题描述】:
是否可以检测元素引用何时改变它的高度? 我尝试使用以下内容,但是当元素的高度由于某种原因发生变化时,不会检测到变化。 (请考虑这也必须在 IE11 中工作)
useEffect(() => {
// detect change in reference height
}, [elementRef])
【问题讨论】:
标签: reactjs react-hooks
是否可以检测元素引用何时改变它的高度? 我尝试使用以下内容,但是当元素的高度由于某种原因发生变化时,不会检测到变化。 (请考虑这也必须在 IE11 中工作)
useEffect(() => {
// detect change in reference height
}, [elementRef])
【问题讨论】:
标签: reactjs react-hooks
我认为你可以在 useEffect 依赖项中使用elementRef.current.clientHeight 来监听标签的高度。
我用这个案例进行了测试,它成功了。
function App() {
const tag = useRef();
const [height, setHeight] = useState(10);
useEffect(() => {
console.log("updated", tag?.current?.clientHeight);
}, [tag?.current?.clientHeight]);
useEffect(() => {
setInterval(() => {
setHeight((height) => height + 10);
console.log(height, tag.current.clientHeight);
}, 2000);
}, []);
return (
<div className="App" ref={tag}>
<div style={{ height: height, backgroundColor: "green" }}></div>
</div>
);
}
这里是密码箱https://codesandbox.io/embed/reactjs-playground-forked-b8j5n?fontsize=14&hidenavigation=1&theme=dark
【讨论】: