Reactjs 高阶函数的广义访问函数

Reactjs 高阶函数的广义访问函数,reactjs,Reactjs,假设我有两个组件: A类扩展组件{ doSomething(){ } } 类扩展组件{ doSomethingElse(){ } } 我有一个特别的问题: const hoc=Wrapped=>{ 返回类扩展组件{ componentDidMount(){ this.wrapped.generallyCalldoSometingandDsomethingelse() } } render(){ 返回( this.wrapped=c}{…this.props}/> ) } } 我想调用doSo

假设我有两个组件:

A类扩展组件{
doSomething(){
}
}
类扩展组件{
doSomethingElse(){
}
}
我有一个特别的问题:

const hoc=Wrapped=>{
返回类扩展组件{
componentDidMount(){
this.wrapped.generallyCalldoSometingandDsomethingelse()
}
}
render(){
返回(
this.wrapped=c}{…this.props}/>
)
}
}

我想调用doSomething或doSomething else,具体取决于传入的组件。除了在两个组件中调用相同的方法外,还有更好的方法吗?

您可以同时使用自文档功能和统一调用的常规功能:

A类扩展组件{
doSomething(){
}
一般的CalldoSometingandDsomethingelse(){
这个doSomething()
}
}
类扩展组件{
doSomethingElse(){
}
一般的CalldoSometingandDsomethingelse(){
这是doSomethingElse()
}
}
您还可以检查函数是否存在,如果存在,则调用:

返回类扩展组件{
componentDidMount(){
if(typeof this.wrapped.doSomething=='function')
这个。包装。做某事();
if(typeof this.wrapped.doSomethingElse=='function')
这个.wrapped.doSomethingElse();
}
}