React 中的 clientWidth 函数
clientWidth function in React
我在使用 Javascript 方面经验丰富,但对于使用 React 还是个新手。当纯粹用 javascript 编码并在浏览器中呈现时,我经常使用:
width = document.getElementById('element_id').clientWidth
将我的 svg 元素动态调整为不同的容器大小。 React 中有这样的东西吗?我一直在尝试使用相同的技术,但正如预期的那样,它不起作用,因为模板是在脚本 运行.
之后呈现的
当然可以。使用“createRef”钩子很容易做到。
基本上,document.getElementById 搜索 DOM 元素并使用 createRef 分配对(虚拟)DOM 元素的引用,您可以对其进行所有操作。
在这里查看它是如何完成的:
import React, { createRef } from 'react';
export const FooComponent = () => {
const fooRef = createRef<HTMLDivElement>();
const handleClick = () => {
const divClientWidth = fooRef.current?.clientWidth;
window.alert(divClientWidth);
};
return (
<div ref={fooRef}>
<button onClick={handleClick}>Show client width</button>
</div>
);
};
用这个就可以用了。
使用效果(didUpdate);。接受包含必要的、可能有效的代码的函数。
const App = () => {
useEffect(() => {
const width = document.getElementById('width').clientWidth;
console.log({ width });
}, []);
return(
<div id="width" />
);
}
我在使用 Javascript 方面经验丰富,但对于使用 React 还是个新手。当纯粹用 javascript 编码并在浏览器中呈现时,我经常使用:
width = document.getElementById('element_id').clientWidth
将我的 svg 元素动态调整为不同的容器大小。 React 中有这样的东西吗?我一直在尝试使用相同的技术,但正如预期的那样,它不起作用,因为模板是在脚本 运行.
之后呈现的当然可以。使用“createRef”钩子很容易做到。 基本上,document.getElementById 搜索 DOM 元素并使用 createRef 分配对(虚拟)DOM 元素的引用,您可以对其进行所有操作。
在这里查看它是如何完成的:
import React, { createRef } from 'react';
export const FooComponent = () => {
const fooRef = createRef<HTMLDivElement>();
const handleClick = () => {
const divClientWidth = fooRef.current?.clientWidth;
window.alert(divClientWidth);
};
return (
<div ref={fooRef}>
<button onClick={handleClick}>Show client width</button>
</div>
);
};
用这个就可以用了。 使用效果(didUpdate);。接受包含必要的、可能有效的代码的函数。
const App = () => {
useEffect(() => {
const width = document.getElementById('width').clientWidth;
console.log({ width });
}, []);
return(
<div id="width" />
);
}