Open sukbearai opened 1 year ago
Form 目前没有实现,有这么几个原因。
watch
方法实现的,但是比较 hack,而且会有其他问题,所以不推荐使用。因为这两个原因,现在实现Form组件的话不是很优雅,所以就没有实现。
如果你只是想要一个办法收集各个表单项的值到一个组件上。你可以试试看 transformer 这个datasource,效果跟 vue的computed是类似的。 如果你想要 Arco 的 Form 的样式,只要不介意第二点原因的话,应该也没什么其他的问题,可以自己实现一下。
你说的第二个功能,可以通过 apiService
来实现。initSunmaoUI
的返回里面有一个apiService
,可以发出和监听事件。Sunmao的自定义组件、Trait和UtilMethod的参数里面都有 services
,可以从services
里面拿到apiService
,发出自定义事件,然后在Sunmao之外监听自定义事件。
根据你的需求,或许可以封装一个 UtilMethod 来专门发出这个自定义事件。可以参考一下 core/v1/scrollToComponent
来实现一个。
Form 目前没有实现,有这么几个原因。
- 一个是因为 Sunmao 暂时在组件实现层面没有获取其他组件的 State 的办法。所以现在实现的 FormControl 也只有样式,没有暴露表单值。Chakra 的 Form 里是用一个
watch
方法实现的,但是比较 hack,而且会有其他问题,所以不推荐使用。- 还有一个问题是 Sunmao 目前没有办法限制一个组件的children的类型。Form的children理应是FormControl,但是Sunmao目前并不能限制这一点。
因为这两个原因,现在实现Form组件的话不是很优雅,所以就没有实现。
如果你只是想要一个办法收集各个表单项的值到一个组件上。你可以试试看 transformer 这个datasource,效果跟 vue的computed是类似的。 如果你想要 Arco 的 Form 的样式,只要不介意第二点原因的话,应该也没什么其他的问题,可以自己实现一下。
你说的第二个功能,可以通过
apiService
来实现。initSunmaoUI
的返回里面有一个apiService
,可以发出和监听事件。Sunmao的自定义组件、Trait和UtilMethod的参数里面都有services
,可以从services
里面拿到apiService
,发出自定义事件,然后在Sunmao之外监听自定义事件。 根据你的需求,或许可以封装一个 UtilMethod 来专门发出这个自定义事件。可以参考一下core/v1/scrollToComponent
来实现一个。
好的,我再看看