继承反转HOC不能将类作为函数调用

时间:2017-01-07 19:12:24

标签: javascript reactjs

关注此Inheritance Inversion Guide后,我不断收到错误:

  

不能将类作为函数调用。

如果我将class extends MyComponent更改为React.Component,那就有效,但这不是我想要的。

我做错了什么?

const MyComponent = () => (
    <Child />
);

const wrappedComponent = MyComponent => class extends MyComponent {
  render() {
    //Doesn't get here
  }
};

const WrappedComponent = wrappedComponent(MyComponent);

ReactDOM.render(
<WrappedComponent />,
document.getElementById('app'));

1 个答案:

答案 0 :(得分:2)

我一直习惯Props Proxy不知道这个Inheritance inversion方法,但现在我知道了,谢谢你

我发现II不会处理无状态组件,因此您必须将功能组件更改为基于类的组件。

为了让一切顺利,请不要忘记在HOC中返回super.render()。我在这里工作:https://jsfiddle.net/ooade/qaudnzk6/