如何在反应中呈现HOC

Ruf*_*eng 6 javascript reactjs react-native redux

我试图用反应来渲染一个HOC,但我无法弄清楚如何让它起作用.所以我有一个HOC与反应导航完美配合.我的想法是展示渲染包装HOC的组件.我想这样做:

  render() {
    return (
      <View style={viewStyle}>
        {CheckLogin(Login)}
      </View>
    );
  }
Run Code Online (Sandbox Code Playgroud)

这个CheckLogin是HOC,Login是组件本身.结果是React没有抱怨但是空白.知道如何渲染HOC调用Component本身吗?

Cry*_*fel 11

您只是将HOC称为JSX内部的函数,而是需要使用</>它来呈现它.

// Apply your HOC
const EnhancedComponent = CheckLogin(Login);

class MyComponent extends Component {
  render() {      
    return (
      <View style={viewStyle}>
        <EnhancedComponent  />
      </View>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

  • @Crysfel,不要在渲染方法中使用HOC.在渲染中调用HOC会使组件在每个渲染上重新安装.[记录在这里](https://github.com/facebook/react/blob/044015760883d03f060301a15beef17909abbf71/docs/docs/higher-order-components.md#dont-use-hocs-inside-the-render-method)以及[在这里回答](/sf/ask/2738434611/) (11认同)