手动设置的el-radio-group默认值无效?选Number()还是parseInt()?

问题来源

在使用el-radio-group处理勾选值的时候,设置好的v-model="groupitemselected"无效!

##组件使用##
<el-radio-group v-model="groupitemselected">
  <el-radio
      v-for="item in  allInfoType"
      size="small"
      :label="item.id"
      :key="item.id"
      style="margin-top: 10px">
    {{ item.name }}
  </el-radio>
</el-radio-group>
##设置默认值##
this.groupitemselected = this.parentid;

##控制台输出结果##

console.log(' this.parentid', this.parentid);

console.log(' this.groupitemselected', this.groupitemselected);

this.parentid 3

this.groupitemselected 3

明明设置成功了为什么无效果呢???

解决办法 

思考:会不会受数据类型影响呢?

尝试打印类型

console.log('this.parentid type:', typeof this.parentid);
console.log('this.groupitemselected type:', typeof this.groupitemselected);
 

##结果##

this.parentid type: string

this.groupitemselected type: string

发现 this.groupitemselected类型是字符串而<el-radio>的:label="item.id"类型是number

尝试将this.groupitemselected类型转换成number,结果默认值成功勾选!

this.groupitemselected = parseInt(this.parentid);

##类型结果##

this.groupitemselected type: number

 至此问题解决

可以用Number()吗?

答案是:可以,通常情况下groupitemselected参数都是纯数字,用Number()和parseInt()影响不大,如果包含其他字符就需要根据情况去考虑了!

  • parseInt():

    • parseInt() 函数将字符串转换为整数(整型数字)。
    • 它从字符串的开头开始解析,直到遇到第一个非数字字符为止,然后返回解析到的数字部分。
    • 如果字符串以非数字字符开头,则返回 NaN(Not-a-Number)。
    • 可以通过第二个参数指定进制(基数),默认为十进制。例如,parseInt("10", 2) 将返回二进制字符串 "10" 对应的十进制整数 2。
  • Number():

    • Number() 构造函数将字符串转换为数字。
    • 如果字符串包含有效的数字形式(整数、浮点数),则返回对应的数字。
    • 如果字符串包含非数字字符,或者是空字符串,则返回 NaN
    • parseInt() 不同,Number() 不支持指定进制,它始终将字符串解析为十进制数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值