Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Form组件适配,想通过Form Api来进行表单的全局管理。 #678

Open
sukbearai opened this issue Jan 18, 2023 · 2 comments
Open

Comments

@sukbearai
Copy link

sukbearai commented Jan 18, 2023

  1. Arco的Form会适配吗,目前没有实现是存在什么方面的问题?FormControl只做了效验逻辑,没有暴露出读取表单值的方法,我看到watch这个API可以用来取值。
  2. 还有一个问题,我想把sunmao app作为页面子组件使用,表单效验通过后再把formData传递给我自己的React组件,这个怎么实现比较好?
@tanbowensg
Copy link
Collaborator

Form 目前没有实现,有这么几个原因。

  1. 一个是因为 Sunmao 暂时在组件实现层面没有获取其他组件的 State 的办法。所以现在实现的 FormControl 也只有样式,没有暴露表单值。Chakra 的 Form 里是用一个 watch 方法实现的,但是比较 hack,而且会有其他问题,所以不推荐使用。
  2. 还有一个问题是 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 来实现一个。

@sukbearai
Copy link
Author

Form 目前没有实现,有这么几个原因。

  1. 一个是因为 Sunmao 暂时在组件实现层面没有获取其他组件的 State 的办法。所以现在实现的 FormControl 也只有样式,没有暴露表单值。Chakra 的 Form 里是用一个 watch 方法实现的,但是比较 hack,而且会有其他问题,所以不推荐使用。
  2. 还有一个问题是 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 来实现一个。

好的,我再看看

@sukbearai sukbearai changed the title 提下下需求 一个需求 Jan 18, 2023
@sukbearai sukbearai changed the title 一个需求 提一个需求 Jan 18, 2023
@sukbearai sukbearai changed the title 提一个需求 Form组件适配,想通过Form Api来进行表单的全局管理。 Jan 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants