uniapp官方数字输入框组件修改版

本文介绍了作者对uniapp官方数字输入框组件的不满意之处,并分享了手动修改后的版本,强调了解决问题要从事件源入手。文章还提到了11.21的更新内容,关于value属性在父子组件通信中的作用,以及如何通过改变value来设置数字输入框的默认值。
摘要由CSDN通过智能技术生成

uniapp官方给的数字输入框组件就是个shit,下面上手动修改过的新版本
解决问题的核心就是——遇到问题寻找事件源,这样才能解决问题

11.21更新—— 这个value的值也是有用的,之前觉得没用,因为这是父子传参,单向数据流动,value是props中接收父组件的一个参数,改变它才能改变数字输入框上的默认值,不然如果你的子组件props-value中default的值就是数字输入框默认显示的值

<template>
	<view class="uni-numbox">
		<view @click="_calcValue('minus')" class="uni-numbox__minus">
			<text class="uni-numbox--text" :class="{ 'uni-numbox--disabled': inputValue <= min || disabled }">-</text>
		</view>
		<input :disabled="disabled" @blur="_onBlur" class="uni-numbox__value" type="number" v-model="inputValue" />
		<view @click="_calcValue('plus')" class="uni-numbox__plus">
			<text class="uni-numbox--text" :class="{ 'uni-numbox--disabled': inputValue >= max || disabled }">+</text>
		</view>
	</view>
</template>
<script>
	export default {
   
		name: "UniNumberBox",
		props: {
   
			msg:Object,//父传子,把类型传过去,因为有多个输入框
			value: {
   
				type: [Number, String],
				default: 0.20
			},
			min: {
   
				type: Number,
				default: 0.2
			},
			max: {
   
				type: Number,
				default: 100
			},
			step: {
   
				type: Number,
				default: 1
			},
			disabled: {
   
				type: Boolean,
				default: false
			}
		},
		data() {
   
			return {
   
				inputValue: 0
			};
		},
		watch: {
   
			value(val) {
   
				this.inputValue = +val;
			},
			inputValue(newVal, oldVal) {
   
				if (+newVal !== +oldVal) {
   
					console.log(this.msg)
					let obj 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值