我已经看到包和库能够console.log
使用 HOCs + 基本组件。由于以下原因,我对如何实现它感到非常困惑:
- 类组件的名称定义为
component.displayName
- 功能组件有
component.name
- HOC 没有获取嵌套 HOC 和组件名称的标准方法
例如一个样本 HOC
function NamePrinter(Wrapped) {
return (class Wrapper extends React.Component {
componentWillReceiveProps() {
console.log(`the name of this component is ${Wrapped.displayName || Wrapped.name}`)
}
render() {
return <Wrapped {...this.props} />
}
})
}
据我所知,这真的是如何得到的。例如,在获取名称react-redux
方面有自己的约定,但这意味着我在搜索名称时只能“深入一层”。
如果我有一个这样包装的组件:
NamePrinter(connect(() => ({}), null)(withStyles({})(React.memo(MyComponent))))
如何console.log
使用我的示例 HOC
connect(withStyles(React.memo(MyComponent)))
或具有相同表现力的类似事物?