React Resize Observer Component

1.4.3 · renamed · verified Sun Apr 19

rc-resize-observer is a React component that provides a declarative way to observe changes in the dimensions of its child elements, leveraging the browser's native `ResizeObserver` API. This package, currently at its last stable version `1.4.3`, wraps the observer logic, offering a simple `onResize` prop to receive `width` and `height` updates. Active development and new features, including a `useResizeObserver` hook, have since migrated to the successor scoped package, `@rc-component/resize-observer`, which is currently at version `1.1.2`. While `rc-resize-observer` remains functional for existing applications, new projects are strongly encouraged to use the `@rc-component/resize-observer` package for ongoing support and enhancements. It aims to offer efficient, non-blocking size monitoring without polling.

Common errors

Warnings

Install

Imports

Quickstart

Demonstrates observing a textarea's dimensions and updating state upon resize using the ResizeObserver component.

import React from 'react';
import ResizeObserver from 'rc-resize-observer';
import { createRoot } from 'react-dom/client';

const App = () => {
  const [size, setSize] = React.useState({ width: 0, height: 0 });

  return (
    <div style={{ padding: 20, border: '1px solid #ccc' }}>
      <h2>Observe Me!</h2>
      <ResizeObserver
        onResize={({ width, height }) => {
          console.log('resized!', { width, height });
          setSize({ width, height });
        }}
      >
        <textarea
          placeholder="Try resizing this textarea"
          rows={5}
          style={{ width: '100%', minWidth: '100px', maxWidth: '400px', minHeight: '50px' }}
        />
      </ResizeObserver>
      <p>Current size: {size.width}px x {size.height}px</p>
    </div>
  );
};

const container = document.getElementById('root');
const root = createRoot(container);
root.render(<App />);

view raw JSON →