Reactjs 是否存在将生命周期挂钩作为参数传递给HOC in React的过程?

Reactjs 是否存在将生命周期挂钩作为参数传递给HOC in React的过程?,reactjs,high-order-component,Reactjs,High Order Component,我正在尝试创建一个包装器,在这里我可以选择要传递的生命周期挂钩。我尝试了以下方法: const HOC = lifeCycleHook => WrappedComponent => { return class OriginalComponent extends React.Component { lifeCycleHook render(){ return ( <WrappedComponent {...this.props}

我正在尝试创建一个包装器,在这里我可以选择要传递的生命周期挂钩。我尝试了以下方法:

const HOC = lifeCycleHook => WrappedComponent => {
  return class OriginalComponent extends React.Component {
    lifeCycleHook
    render(){
      return (
        <WrappedComponent {...this.props} />
      );
    }
  }
}

export default HOC;
编辑:不会引发编译错误,但控制台日志不会触发以打印“测试”

包可以为您执行此操作。以下是帮助器中的示例:

constpostslist=({posts})=>(
    {posts.map(p=>
  • {p.title}
  • )}
) const PostsListWithData=生命周期({ componentDidMount(){ fetchPosts()。然后(posts=>{ this.setState({posts}); }) } })(PostsList);
你有真实的背景吗?你在哪里需要这个?像一个真实的例子?为了让我能更好地理解,没有什么特别的,只是在玩弄HOC,并注意到我无法实现这个想法。也许你不能这样做,因为没有必要这样做。您只需将一个道具传递给组件,然后在
componentDidMount
中调用该道具,我认为您没有抓住要点。componentDidMount只是一个例子。我正在试图找到一种方法,在那里我可以通过一个不同的生命周期挂钩,而不是通过一个道具特定的组件。我认为Oblosys的答案是好的,你应该测试它
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;
const PostsList = ({ posts }) => (
  <ul>{posts.map(p => <li>{p.title}</li>)}</ul>
)

const PostsListWithData = lifecycle({
  componentDidMount() {
    fetchPosts().then(posts => {
      this.setState({ posts });
    })
  }
})(PostsList);