【发布时间】:2022-01-11 15:09:03
【问题描述】:
如何使用as SVGElement 或as HTMLDivElement 等传递类型注释...
成一个钩子
function AppSVG(){
const ref = useResizeObserver((entry) => {
...
}) as SVGElement;// <- how do I pass SVGElement to the hook
return <svg ref={ref} />
}
function AppDiv(){
const ref = useResizeObserver((entry) => {
...
}) as HTMLDivElement;// <- how do I pass HTMLDivElement to the hook
return <div ref={ref} />
}
钩子
function useResizeObserver(observerCallback: ResizeObserverCallback) {
const ref = React.useRef<any>(null);//<- into the ref
React.useEffect(() => {
if (!!ref && !!ref.current)
new ResizeObserver(observerCallback).observe(ref.current);
}, []);
return ref;
}
【问题讨论】:
标签: javascript reactjs typescript