不同文件中的高阶函数和类

问题描述:

当前使用react-native并使用高阶函数。我有一些演示组件,我正在使用,我目前有一个HOC容器来处理一些布局属性。不同文件中的高阶函数和类

我现在认识到我想拥有多个容器,它们将是同一类的不同配置。为此,我在一个不同的文件中创建了一个类,但问题是,我似乎无法使用箭头函数将我的组件传递到类。我很确定我错过了一些非常微不足道的东西。

下面是代码的一部分,以了解问题:

BaseContainer:

export default class BaseContainer extends Component { 

    render(){ 
     <Wrapped/> 
    } 

} 

HOC组件(忽略2出口默认情况下,这些是2个不同的模块):

export default RegularContainer = (Wrapped) => BaseContainer; 

export default MessageContainer = (Wrapped) => class extends BaseContainer { 

    constructor(props){ 
     super(props); 
     this._borderStyle = 'containerLeftBorder';     
    } 

} 

我得到的错误是“无法找到变量:包装”在BaseContainer,这是可以理解的,但我无法弄清楚如何传递Wrapped变量时类在ano其他模块。

如果我在同一个文件中定义BaseContainer类的内容,这很好。

那么,我“解决”它,但它似乎有点难看。我很想听听一些反馈。否则我会将其作为回答关闭此问题:

export default RegularContainer = (Component) => class extends BaseContainer { 

     constructor(props){ 
      super(props); 
      this._Wrapped = Component;    
     } 

    } 



export default MessageContainer = (Component) => class extends BaseContainer { 

    constructor(props){ 
     super(props); 
     this._borderStyle = 'containerLeftBorder'; 
     this._Wrapped = Component;    
    } 

}  
+0

问题出在BaseContainer作用域上,包装不存在。您需要导入Wrapped或插入它作为类静态 –