Element-plus + ts中,验证表单使用自定义校验规则

例如验证手机号:

  第一步:写自定义校验规则

// 验证手机号
var checkMobile = (rule: any, value: any, callback: any) => {
    const regMobile = /^(0|86|17951)?(13[0-9]|15[012356789]|166|17[3678]|18[0-9]|14[57])[0-9]{8}$/
    if (regMobile.test(value)) {
        return callback()
    }
    return callback(new Error('请输入正确的手机号'))
}

 第二步:在验证表单的配置项下面

let rules = reactive<FormRules>({
    phone: [
            { required: true, message: '请填写手机号', trigger: 'blur' }, 
            { validator: checkMobile, trigger: 'blur' }
          ]

完成!!!

但是有些大佬会出现以下这种情况

 怎么第一个参数(rule)报错了 ???

但是聪明的你依然会发现还能正确验证,代码也能正常跑起来

原来是 ts 搞的鬼,ts告诉我们 声明了但未读取其值, 也就是 这个参数声明了但没有使用

 如何解决呢???

      只需要到  ts.config.json 中 将这三项设置为 false 或者 注释 即可

 "strict": false,
 "noUnusedLocals": false,
 "noUnusedParameters": false,

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要解决Element Plus + TypeScript的"ResizeObserver loop limit exceeded"错误,您可以尝试按照以下步骤编写代码: 1. 导入ResizeObserver: 在需要使用ResizeObserver的组件,首先导入ResizeObserver类。 ```typescript import { ResizeObserver } from 'resize-observer'; ``` 2. 创建ResizeObserver实例: 在组件创建一个ResizeObserver实例,并在构造函数或生命周期钩子函数进行初始化。 ```typescript // 在构造函数或生命周期钩子函数初始化ResizeObserver实例 private resizeObserver: ResizeObserver | null = null; mounted() { this.resizeObserver = new ResizeObserver(this.handleResize); } ``` 3. 监听元素尺寸变化: 将需要监听尺寸变化的元素传递给ResizeObserver的observe方法。 ```typescript // 在合适的时机,将元素传递给ResizeObserver的observe方法 observeElement() { const element = document.getElementById('your-element-id'); if (element && this.resizeObserver) { this.resizeObserver.observe(element); } } ``` 4. 处理尺寸变化事件: 创建一个处理尺寸变化事件的回调函数,确保在回调函数不会出现导致无限循环的问题。 ```typescript // 尺寸变化事件处理函数 handleResize(entries: ResizeObserverEntry[]) { for (const entry of entries) { // 处理尺寸变化逻辑 } } ``` 5. 取消观察: 如果您确定不再需要观察某个元素的尺寸变化,可以调用ResizeObserver的unobserve方法取消观察。 ```typescript // 取消观察元素的尺寸变化 unobserveElement() { const element = document.getElementById('your-element-id'); if (element && this.resizeObserver) { this.resizeObserver.unobserve(element); } } ``` 请注意,上述代码的`'your-element-id'`应替换为您自己的元素ID。 希望这些步骤能够帮助您解决问题。如果仍然有困惑或问题,请提供更多的代码细节,以便我可以提供更进一步的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值