不同文件中的高阶函数和类
问题描述:
当前使用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;
}
}
问题出在BaseContainer作用域上,包装不存在。您需要导入Wrapped或插入它作为类静态 –