This plugin add displayName to various form of react component definition, including ES6 class, createReactClass calls, stateless functions (both function and arrow).
For createReactClass or createClass calls, the variable name becomes displayName:
let Foo = createReactClass({
// ...
});
Becomes
let Foo = createReactClass({
displayName: 'Foo',
// ...
});
For named classes, class name becomes displayName, all classes with a render method whose function body contains jsx expression are recgonized as component class:
class Foo extends Component {
render() {
return <div></div>;
}
}
let Alice = class Bob extends Component {
render() {
return <div></div>;
}
}
Becomes
class Foo extends Component {
render() {
return <div></div>;
}
}
Foo.displayName = 'Foo';
let Alice = class Bob extends Component {
render() {
return <div></div>;
}
}
Alice.displayName = 'Bob';
For anonymouse classes, the variable name becomes displayName:
let Foo = class extends Component {
render() {
return <div></div>;
}
}
Becomes
let Foo = class extends Component {
render() {
return <div></div>;
}
}
Foo.displayName = 'Foo';
For stateless component defined via named functions (both function declarations and expressions), the function name becomes displayName:
function Foo() {
return <div></div>;
}
let Alice = function Bob() {
return <div></div>;
};
Becomes
function Foo() {
return <div></div>;
}
Foo.displayName = 'Foo';
let Alice = function Bob() {
return <div></div>;
};
Alice.displayName = 'Bob';
For anonymous functions or arrow functions, the variable name becomes displayName:
let Foo = function () {
return <div></div>;
};
let Bar = () => <div></div>;
Becomes
let Foo = function () {
return <div></div>;
};
Foo.displayName = 'Foo';
let Bar = () => <div></div>;
Bar.displayName = 'Bar';
For other cases where there is no explicit hint of displayName, this plugin will not add displayName to component.
babel-plugin-react-add-display-name
This plugin add
displayNameto various form of react component definition, including ES6 class,createReactClasscalls, stateless functions (bothfunctionand arrow).Install
Usage
Via
.babelrc(Recommended).babelrc
Via CLI
Via Node API
Source of displayName
For
createReactClassorcreateClasscalls, the variable name becomesdisplayName:Becomes
For named classes, class name becomes
displayName, all classes with arendermethod whose function body contains jsx expression are recgonized as component class:Becomes
For anonymouse classes, the variable name becomes
displayName:Becomes
For stateless component defined via named functions (both function declarations and expressions), the function name becomes
displayName:Becomes
For anonymous functions or arrow functions, the variable name becomes
displayName:Becomes
For other cases where there is no explicit hint of
displayName, this plugin will not adddisplayNameto component.