class A extends React.Component {
constructor(props) {
super(props);
}
render() {
return
{this.props.msg}{this.props.data}
;
}}function hoc(WrappedComponent, f){
class MyClass extends React.Component {
constructor(props) {
super(props);
this.state = {name: 'alex'};
}
render() {
const {extra, ...passThroughProps} = this.props;
f("rendering..."+extra); // redering…100
return ;
}
};
MyClass.displayName = 'MyHOC'; // for easy debugging
return MyClass;}const B = hoc(A, text=>console.log(text));ReactDOM.render(,document.querySelector("div"));////////////////////////////////////////////////////////////////////////////////////////////////////function getDisplayName(WrappedComponent) {
return WrappedComponent.displayName || WrappedComponent.name || 'Component';}console.log(getDisplayName(B)); // MyHOC