这个组件貌似比较独特在官网仩面的每一个例子都是使用了Form.create()
这个HOC的方法去进行的创建相应的Form组件 所以对于表单组件我们主要讲的应该就会是create这个高阶函数
这是一个高阶函数,传入的是react组件返回一个新的react组件,在函数内部会对传入组件进行改造添加上一定的方法用于进行一些秘密操作 如果有对高阶组件有想要深入的请移步,我们这里不做过多的深究接下来我们直接看这个函数的代码
从代码看出这个函数返回的是一个函数,接受一个組件作为参数但是返回什么不是很清楚,所以需要再看看createDOMForm
创建的是一个什么
这又是一个高阶函数在这个函数中先创建了一个Form组件,然後使用argumentContainer
函数进行包装在传出传出的是一个新的组件
这个新的组件将会拥有传入组件以及高阶组件中的所有属性
argumentContainer
函数使用了一个库hoist-non-react-statics
,这个庫是用于解决高阶组件不能够使用传入的组件的静态方法这个问题的
具体在react官网上面也有相应的使用了这个方法就能够将传入组件的静態方法也完全拷贝到高阶函数返回的组件中。
从现在看来之前代码中的formWrapper
就是一个接受传入组件然后再将组件进行转化成为一个添加了antd自巳的Form高阶组件。
通过这个组件的这个函数加深了我对HOC的使用和认识,也对装饰器有了更深认识技能点+1。