Schema 渲染的上下文。
scope
:Schema 中变量的映射components
: Schema 中组件的映射refresh
:触发 React 重新渲染的工具函数reset
:重置整个 Schema 节点designable
:是否显示设计器,默认 false
setDesignable
:用于切换 designable
的值用于获取注册的 scope
和 components
。
其是对 SchemaComponentContext.Provider
和 FormProvider 的封装,并内置在 Application
中,并且会将 app.components
和 app.scopes
传递过去,所以一般情况下 不需要关注 此组件。
designable
:SchemaComponentContext
中 designable
的默认值form
:Tachybase 的 Schema 能力是基于 formily 的 FormProvider
提供的,form 是其参数,默认为 createForm()
scope
:Schema 中所用到的变量,会通过 SchemaComponentContext
进行传递components
:Schema 中所用到的组件,会通过 SchemaComponentContext
进行传递用于渲染 Schema,此组件必须和 SchemaComponentProvider
一起使用,因为 SchemaComponentProvider
提供了 FormProvider 作为渲染 Schema 的根节点。
详细解释
memoized
:当为 true
时,会对每层的 Schema 使用 useMemo()
进行处理components
:同 SchemaComponentProvider
的 components
scope
: 同 SchemaComponentProvider
的 components
结合 SchemaComponentProvider
、 useSchemaComponentContext()
和 SchemaComponent
。
使用 new Application()
的方式,其内置了 SchemaComponentProvider
,我们可以如下操作:
在应用中,会有很多层级的嵌套,每一层都可能提供自己的组件和 scope,此组件就是为了层层传递 Schema 所需的 components
和 scope
的。