React Display Name Utility

0.2.5 · maintenance · verified Sun Apr 19

This package provides a small, reusable utility function, `getDisplayName`, to extract the display name of a React component. It is particularly useful in patterns like Higher-Order Components (HOCs) for creating descriptive `displayName` properties for the wrapped components, aiding in debugging and developer tooling, especially with React DevTools. As of version 0.2.5, it ships with TypeScript definitions, enhancing type safety in projects utilizing TypeScript. The package has a low release cadence, with updates primarily focusing on maintenance, dependency upgrades, or minor feature enhancements like improved default return values. Its core functionality is stable and focused solely on robust component naming conventions.

Common errors

Warnings

Install

Imports

Quickstart

Demonstrates how to use `getDisplayName` within a Higher-Order Component (HOC) to construct a descriptive `displayName` for debugging purposes.

import React, { Component } from 'react';
import getDisplayName from 'react-display-name';

const withLogger = (WrappedComponent) => {
  class WithLogger extends Component {
    static displayName = `WithLogger(${getDisplayName(WrappedComponent)})`;
    render() {
      console.log(`Rendering ${WithLogger.displayName}`);
      return <WrappedComponent {...this.props} />;
    }
  }
  return WithLogger;
};

class MyComponent extends Component {
  render() {
    return <div>Hello, World!</div>;
  }
}

const EnhancedMyComponent = withLogger(MyComponent);

// In a React application, you would render EnhancedMyComponent
// ReactDOM.render(<EnhancedMyComponent />, document.getElementById('root'));

console.log(getDisplayName(MyComponent)); // Expected: 'MyComponent'
console.log(getDisplayName(EnhancedMyComponent)); // Expected: 'WithLogger(MyComponent)'

view raw JSON →