我正在尝试创建一个包装HOC,我可以在其中选择要传递的生命周期挂钩。我尝试了以下HOC:
const HOC = lifeCycleHook => WrappedComponent => {
return class OriginalComponent extends React.Component {
lifeCycleHook
render(){
return (
<WrappedComponent {...this.props} />
);
}
}
}
export default HOC;
用于包装原始组件的组件:
import React from 'react';
import HOC from './helpers/hoc';
import componentDidMount from './helpers/componentDidMount';
const Home = () => <h1>Home</h1>;
export default HOC(componentDidMount)(Home);
最后是生命周期挂钩:
import React from 'react';
function componentDidMount(){
console.log('Test')
}
export default componentDidMount;
编辑:不会引发任何编译错误,但不会触发控制台日志来打印“测试”