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

关于静默校验的需求 #591

Closed
FloaJa opened this issue Jun 2, 2023 · 8 comments
Closed

关于静默校验的需求 #591

FloaJa opened this issue Jun 2, 2023 · 8 comments

Comments

@FloaJa
Copy link

FloaJa commented Jun 2, 2023

需求背景:
保单录单时需要在后台实时根据用户输入内容发起请求, 进行试算保费, 当然接口发起前是需要对部分字段进行校验的, 但是form 的校验会触发页面显示报错提示, 所以需要一种方式在用户无感知的情况下校验并在校验通过后发起请求.

现在的实现方式:
在项目中我们使用patch-packagefield-Form源码进行了修改, 使用方法大致是这样:

await form.validateFields(nameList, { noSense: true });

传入noSense来判断这次校验是否是一次静默校验

遇到的问题:
antd-mobile内部使用了不固定版本的rc-field-form, 导致patch-package不能稳定生效
image

诉求:
希望能通过官方的方式实现这个需求, 比如像我们现在实现方式一样增加一个参数防止页面的报错

@1075488066
Copy link

你直接把Form.Item设置成noStyle不就行了。

@FloaJa
Copy link
Author

FloaJa commented Jun 2, 2023

你直接把Form.Item设置成noStyle不就行了。

如果用户手动点击下一步的时候是需要正常校验, 并且在页面显示错误信息的

@1075488066
Copy link

你直接把Form.Item设置成noStyle不就行了。

如果用户手动点击下一步的时候是需要正常校验, 并且在页面显示错误信息的

你可以自己控制报错信息通过form.getFieldErrors

@FloaJa
Copy link
Author

FloaJa commented Jun 2, 2023

你直接把Form.Item设置成noStyle不就行了。

如果用户手动点击下一步的时候是需要正常校验, 并且在页面显示错误信息的

你可以直接控制报错信息啊

我不知道这次校验是由用户触发的, 还是后台逻辑触发的

@1075488066
Copy link

用户操作的onValuesChange不是会有回调吗。代码执行的不会触发这个方法。

@FloaJa
Copy link
Author

FloaJa commented Jun 2, 2023

用户操作的onValuesChange不是会有回调吗。代码执行的不会触发这个方法。

回显或者联动场景, 通过api设置值不会触发onValuesChange, 但是需要发起请求

@q269384828
Copy link

这个应该有了吧. validateOnly 参数

@FloaJa
Copy link
Author

FloaJa commented Jul 14, 2023

这个应该有了吧. validateOnly 参数

多谢了才发现, 1.31.0版本支持了, antd-mobile还没有支持到这么新的版本, 不过rcform向下兼容的, 应该可以强行使用

@FloaJa FloaJa closed this as completed Jul 14, 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

3 participants