为啥验证器方法返回true时会弹出一段时间的错误消息?

Posted

技术标签:

【中文标题】为啥验证器方法返回true时会弹出一段时间的错误消息?【英文标题】:Why does error message pops up for some time when validator method returns true?为什么验证器方法返回true时会弹出一段时间的错误消息? 【发布时间】:2020-04-25 12:07:39 【问题描述】:

我尝试使用 vuelidate 使用 setTimeout 方法模拟异步验证,但是当我的异步方法返回 true 值时,错误消息会弹出一段时间然后隐藏。

有代码沙箱:https://codesandbox.io/s/angry-montalcini-suec4?fontsize=14&hidenavigation=1&theme=dark

【问题讨论】:

我猜这就是 Vuelidate 的工作原理。请参阅doc's example,它的行为方式与您的代码相同。 如果字段填写正确,我认为不会弹出错误消息 如果您输入的字符数超过 10 个字符,则不会弹出错误消息 【参考方案1】:

刚刚想通了。无论出于何种原因,当异步方法正在做它的事情时,自定义验证属性(在我的情况下为“唯一”)会在一瞬间设置为 false。我还注意到,在这一瞬间,$pending 在返回 false 之前也被设置为 true。所以 - 通过在你的 if 语句中结合两者,你应该能够防止你的错误消息在那一瞬间弹出。 类似:

v-if="!$v.email.unique && !$v.email.$pending"

【讨论】:

8 个月前我问过这个问题,但无论如何,谢谢 :) 别担心,伙计,找不到我的时光机,抱歉。

以上是关于为啥验证器方法返回true时会弹出一段时间的错误消息?的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery 和验证提交表单

为啥在运行C#时会弹出找不到调试类型coreclr调试适配器描述符?

为啥开启电脑时会出现“insert a smart card”的呢?使用电脑是老是会弹出“索引器停止工作”的窗口呢?

twine上传文件到pypi时为啥会弹出如下错误

EditText 中可点击的复合可绘制对象,点击时会弹出一个视图

为啥idea会弹出一个错误,叉掉导致idea关闭