请检查以下代码。通常export
重新启动模块中的组件。然而,在这个程序中似乎还有其他东西出口:export default screenHoc(\)(Login);
。
任何人都可以解释这条线是如何工作的?有人可以清楚地了解React中的出口情况
import React from "react";
import {screenHoc} from "ui-hocs";
import {Div} from "ui-atoms";
import {RenderScreen} from "ui-molecules";
class Login extends React. Component {
render()
{
return (
<Div>
<Div style = {{ textAlign:"center", color:"#3f51b5"}}>
<h2>USER LOGIN FORM</h2>
</Div>
<RenderScreen
components={this.props.components}
uiFramework={this.props.uiFramework}
onFieldChange={this.props.onFieldChange}
onComponentClick={this.props.onComponentClick}
/>
</Div>
)
}
}
export default screenHoc({path:"core",screenKey:"login"})(Login);
正如您所正确提到的,export default
语句用于导出此模块的组件 - Loign
。
但是 - 在这种情况下,Login
组件被传递到screenHoc
higher order component - 一种高级的React模式,通常用于向原始组件添加一些额外的功能(或数据)。
简而言之 - 从这一行返回的内容:
screenHoc({path:"core",screenKey:"login"})(Login)
是Login
组件的“改进”或“丰富”版本,这是从该模块导出的。