前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Md5引发的一起血案。

Md5引发的一起血案。

作者头像
执行上下文
发布2023-07-24 16:49:32
2800
发布2023-07-24 16:49:32
举报
文章被收录于专栏:执行上下文执行上下文

在ant-design的Form表单使用rule校验的时候,有一个时间的输入项是根据条件显示隐藏的,在满足条件的时候,输入值已经符合校验规则后,点击保存页面没有反应!控制台报 input is invalid type 错误。

一开始以为是rules的校验规则不生效导致的,就去改校验规则的实现方法,然后发现还是不行。又仔细看了一下发现

input is invalid type 其实是输入的数据类型不符合校验规则所需要的类型导致的。然后又去看该输入项的打印值,发现值是对的。

然后后面还有一段报错 component event handler,官方解释是

代码语言:javascript
复制
1、组件事件处理程序未正确定义
2、校验规则的函数中有作用域的问题
3、校验规则函数的返回值有问题
4、规则配置错误

按照上面的方法去一一查找后发现没有任何问题。。

到这为止,只觉得脑壳痛。

然后去搜了下这个报错,发现有个回答提到了md5加密的时候值为空或者不是字符串所以阻塞了rules的校验。我感觉很奇怪因为在该条件下密码字段是不用输入的,然后发现之前的逻辑是 顺序往下走的,因为password不需要输入默认值就是空,就导致了报错。

也是无语的不行。

给password加了一个非空判断,报错就消失了。

代码语言:javascript
复制
admin: {
    userName: adminName,
    phone: adminPhone,
    password: normalPassword ? md5((normalPassword)) : null
}

问题解决后,心里一阵MMP。。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 执行上下文 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档