使用iviewui组件库的坑

背景

使用view-design组件库的Input组件的时候,按照产品的要求,输入框中只能键入正整数。

使用效果

  1. 如果直接使用组件的type属性,设置类型为number时,乍一看没啥问题,但是当我们键入 小数点(.) 或者 e/E 后面没有跟任何数字时,会发现我们的input或者change回调函数中,根本就没有小数点这个字符,还有很多字符都会对这个限制(输入框中只能键入正整数)有影响,不建议使用这中方案
    在这里插入图片描述
    以上是示例的输出结果,我们可以明显的发现,在键入小数点,返回值中没有小数点,当再输入一个数值,小数点才会显现出来。

    原因:
    任何数字都是可接受的值,只要它是有效的浮点数w3c的官方解释:什么是有效浮点数

  2. 我们使用type类型为text,本来以为这种肯定可以,因为我们可以在input或者change的时候,更改(格式化)输入的结果,
    类似这样:

onInput/onChange(value) {
/** 非数字的字符全部替换为空字符串 */
  this.settingForm.readingTime = value.replaceAll(/\D/g, "");
}

但是,神奇的发现,竟然没有效果,键入的值没有按照预计的结果输出,并没有把非数字字符替换为空字符串.
然后当我去查看view-design组件库源码之后,发现确实他们做处理了

handleInput (event) {
     if (this.isOnComposition) return;
     let value = event.target.value;
     if (this.number && value !== '') value = Number.isNaN(Number(value)) ? value : Number(value);
     this.$emit('input', value);
     /** 把值更改了 **/
     this.setCurrentValue(value);
     this.$emit('on-change', event);
},
setCurrentValue (value) {
/** 当我们执行change更改的时候,它又认为前后值相同,直接return */
                if (value === this.currentValue) return;
                this.$nextTick(() => {
                    this.resizeTextarea();
                });
                this.currentValue = value;
                if (!findComponentUpward(this, ['DatePicker', 'TimePicker', 'Cascader', 'Search'])) {
                    this.dispatch('FormItem', 'on-form-change', value);
                }
            },

watch: {
            value (val) {
                this.setCurrentValue(val);
            }
        },

解决

由于项目中还引入了elementUI,所以博主直接使用了elementUI,完美解决。
有一说一,名声高还是有一定实力的。

写在最后

当我们发现某些行为出乎意料时,首先看看我们使用的工具是否鲁棒性够好,在简单的问题上,不要过于怀疑我们自己的问题

如果有帮助到大家,不管是问题本身还是思维方式,都希望大家可以点个赞支持下博主!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/913806.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件测试学习记录 Day1

根据黑马程序员最新版的软件测试课程所做的笔记,需要原件后台私信: 练习提取测试点: 博主的答案,有不一样看法的可评论区讨论:

uni-app选项卡制作 ⑥

文章目录 十、选项卡制作一 、组件创建二、scroll-view 组件使用三、点击设置按钮跳转到标签设置界面四、数据获取 十、选项卡制作 1.遇到错误: 2.解决问题: 3.this 指向问题 // 指向: get_label_list uniCloud.callFunction({name: "g…

最新x64dbg软件

最新x64dbg软件 1、简介2、调试程序界面3、开源官网 1、简介 最新x64dbg软件-比OD更好的工具,原生支持中文界面和插件。 x64dbg是一款专业的windows系统下的64位调试器,界面简洁、操作简单,与 “OllyDbg” 调试工具非常相似,如果…

【时间之外】IT人求职和创业应知【31】

目录 新闻一:2024年“秦创原沣东杯”陕西省科技工作者创新创业大赛颁奖仪式暨沣东新城机器人产业发展大会盛大启幕 新闻二:声网CEO赵斌:RTE将成为生成式AI时代AI Infra的关键部分 新闻三:“5G工业互联网”融合应用试点城市名单…

Docker使用docker-compose一键部署nacos、Mysql、redis

下面是一个简单的例子,展示如何通过Docker Compose文件部署Nacos、MySQL和Redis。请确保您的机器上已经安装了Docker和Docker Compose。 1,准备好mysql、redis、nacos镜像 sudo docker pull mysql:8 && sudo docker pull redis:7.2 &&…

04 深入 Oracle 并发世界:MVCC、锁、闩锁、事务隔离与并发性能优化的探索

文章目录 深入 Oracle 并发世界:MVCC、锁、闩锁、事务隔离与并发性能优化的探索一、多版本并发控制(MVCC)1.1 理论解析1.2 实践应用 二、锁与闩锁机制2.1 理论解析2.2 实践应用 三、事务隔离级别3.1 理论解析3.2 实践应用 四、死锁预防与解决…

PyQt5超详细教程终篇

PyQt5超详细教程 前言 接: [【Python篇】PyQt5 超详细教程——由入门到精通(序篇)](【Python篇】PyQt5 超详细教程——由入门到精通(序篇)-CSDN博客) 建议把代码复制到pycahrm等IDE上面看实际效果,方便理…

计算机的错误计算(一百五十一)

摘要 探讨 MATLAB 中反正弦 asin 与反余弦 acos 函数的计算精度问题。 例1. 已知 计算 及 直接贴图吧: 另外,16位的正确值分别为 0.1570785896071048e1、0.1043072384837152e-4、-0.1570785896071048e1 与 0.3141582222865945e1(I…

FPGA学习笔记#5 Vitis HLS For循环的优化(1)

本笔记使用的Vitis HLS版本为2022.2,在windows11下运行,仿真part为xcku15p_CIV-ffva1156-2LV-e,主要根据教程:跟Xilinx SAE 学HLS系列视频讲座-高亚军进行学习 从这一篇开始正式进入HLS对C代码的优化笔记 学习笔记:《…

Spring Plugin与策略模式:打造动态可扩展的应用

目录 一、策略模式 二、Spring Plugin 2.1 Spring Plugin 实现策略模式开发 2.2 策略模式优缺点 三、Spring Plugin 原理 一、策略模式 策略模式是一种设计模式,它允许程序在运行中动态的选择不同的行为方式进行动态执行。策略模式的核心思想是将行为封装在一个个…

Works With线上开发者大会将提供物联网行业深入的专业知识和技能

Silicon Labs2024年Works With线上开发者大会定于11月20日至21日举行,将汇集全球各地的物联网开发人员、设备制造商、无线技术专家、工程师和商业领袖,观众可免费注册参加。同时,为了方便中文观众,所有在线视频均配有中文字幕。 芯…

一文读懂 Web 安全

Web 安全是互联网中不可或缺的一个领域,这个领域中诞生了大量的黑帽子与白帽子,他们都是安全领域的王者,在平时里,他们利用各种巧妙的技术互相博弈,时不时就会掀起一场 Web 安全浪潮,真可谓神仙打架&#x…

iOS问题记录 - 503 Service Temporarily Unavailable

文章目录 前言开发环境问题描述问题分析解决方案最后 前言 最近有个项目经历了大改动,本地测试没什么问题,于是准备通过打包机打包用于内部测试的包,然后问题就来了。 开发环境 Xcode: 16.1Fastlane: 2.219.0 问题描述 问题出在登录苹果…

数据网格能替代数据仓库吗?

一、数据网格是什么? 数据网格:是一种新兴的数据管理架构和理念,主要用于解决大规模、复杂数据环境下的数据管理和利用问题。 核心概念: 1、数据即产品:将数据看作一种产品,每个数据域都要对其生产的数据负…

Dolphinscheduler配置dataX离线采集任务写入hive实践(二)

这里写目录标题 一、 写入hive 配置1.1 权限报错信息 :1.2 hive 中文件格式1.3 注意区别以下建表语句A、构建ORC 格式分区表B. 构建默认文件格式分区表C.构建非分区表 二、dataX 配置hive 分区表导入 配置2.1 检查hive 表分区是否存在 一、 写入hive 配置 dataX 写…

机器学习——损失函数、代价函数、KL散度

🌺历史文章列表🌺 机器学习——损失函数、代价函数、KL散度机器学习——特征工程、正则化、强化学习机器学习——常见算法汇总机器学习——感知机、MLP、SVM机器学习——KNN机器学习——贝叶斯机器学习——决策树机器学习——随机森林、Bagging、Boostin…

Word大珩助手:超大数字怎么读?35位数字?69位数字?

俄罗斯日前对谷歌开出了20000000000000000000000000000000000(35位数字)美元的罚款 这一数字远超全球GDP总和,消息一出很快就登上热搜。 面对这样一个庞大的数字,人们不禁好奇,这样的数字该如何读出来? …

ODOO学习笔记(2):核心功能是哪些?

Odoo的核心功能主要包括以下几个方面: 客户关系管理(CRM):Odoo的CRM工具管理公司与客户和潜在客户的所有关系和互动,提供一个集中式系统来管理销售活动,从潜在客户培育到达成交易。CRM模块包括报告和分析功…

JUC学习

JUC 1、什么是JUC? ​ JUC是java.util.concurrent包的简称,在Java5.0添加,目的就是为了更好的支持高并发任务。在 Java 5.0 提供了 java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类,用于定义类似于线程的自定义…

Kafka面试题解答(二)

1.怎么尽可能保证 Kafka 的可靠性 kafka是可能会出现数据丢失问题的,Leader维护了一个动态的in-sync replica set(ISR),意为和 Leader保持同步的FollowerLeader集合(leader:0,isr:0,1,2)。如果Follower长时…