Javascript 从高阶组件获取已包装组件的名称
我想说的是:Javascript 从高阶组件获取已包装组件的名称,javascript,reactjs,Javascript,Reactjs,我想说的是: import React, { Component } from "react"; let validateURL = WrappedComponent => class extends Component{ render() { if( wrappedcomponentnameis === 'xyz') return ... elseif(wrappedcomponentnameis ==
import React, { Component } from "react";
let validateURL = WrappedComponent =>
class extends Component{
render() {
if( wrappedcomponentnameis === 'xyz')
return ...
elseif(wrappedcomponentnameis === 'abc')
return ...
and so on....
}
};
export default validateURL;
如何获取此HOC中已包装组件的名称?您可以通过
WrappedComponent.name
访问它:
const HOC=WrappedComponent=>类包装器扩展React.Component{
render(){
如果(WrappedComponent.name==='Hello'){
返回
}
返回
}
}
类Hello扩展了React.Component{
render(){
返回Hello{this.props.name}
}
}
const App=HOC(你好)
ReactDOM.render(
,
document.getElementById('容器')
);代码>
使用this.constructor.name
,或者-您可以在render()
方法中返回this.props.children
。this.constructor.name
返回\u class2
,它不是组件的名称this.props.children
也不起作用。您好,如果组件在诸如React Redux、React Router等库的HOC中被包装/双重包装,是否有办法获得根组件名称。Jest有类似.wrappedComponent的东西,您可以在测试中使用它。所以我认为这是可能的。为此,我们必须寻找一个笑话源代码。