UNPKG

adui

Version:

<div> <img src="https://wxa.wxs.qq.com/mpweb/delivery/legacy/wxadtouch/upload/t1/od834zef_52939fc6.png" style="margin:40px 0 0 -8px; background-color: #fcfcfc; box-shadow: none;" /> </div>

50 lines (49 loc) 1.58 kB
/** * ResizeObserver 会以 class 组件的形式存在, * 因为其使用 findDomNode(this) 实现 children 为 fc 时不能给 ref 的情况 * 如果 ResizeObserver 也是 fc,就没有办法在不添加额外结构的情况下拿到 dom 了 */ import * as React from "react"; import ResizeObserver from "resize-observer-polyfill"; interface ResizeObserverEntry { readonly borderBoxSize: ResizeObserverEntryBoxSize; readonly contentBoxSize: ResizeObserverEntryBoxSize; readonly contentRect: any; readonly target: Element; } interface ResizeObserverEntryBoxSize { blockSize: number; inlineSize: number; } export interface IResizeObserverProps { children: React.ReactNode; disabled?: boolean; onResize?: (size: { width: number; height: number; }) => void; } interface ResizeObserverState { height: number; width: number; } type RefNode = React.ReactInstance | HTMLElement | null; declare class ReactResizeObserver extends React.Component<IResizeObserverProps, ResizeObserverState> { static displayName: string; resizeObserver: ResizeObserver | null; childNode: RefNode; currentElement: Element | null; state: { width: number; height: number; }; componentDidMount(): void; componentDidUpdate(): void; componentWillUnmount(): void; onComponentUpdated(): void; onResize: (entries: ResizeObserverEntry[]) => void; setChildNode: (node: RefNode) => void; destroyObserver(): void; render(): JSX.Element | null; } export default ReactResizeObserver;