vue获取data中数组的value值_vue调用组件,组件回调给data中的数组赋值,报错Invalid prop type check failed for prop value. Expecte...

报错信息:

代码信息:

调用一个tree组件,选择一些信息

@treeCheck="treeCheck"

:isClearAllChecked=true

:defaultProps="defaultProps">

选择之后返回选中数据信息,并且在父组件中给data中的数组(type、typeName)赋值:

data: function () {

return {

dataForm: {

type: [],

typeName: []

}

}

},

回调方法执行:

treeCheck: function (a, b) {

let t = []

let tid = []

for (var i = 0; i < b['checkedNodes'].length; i++) {

t.push(b['checkedNodes'][i]['name'])

tid.push(b['checkedNodes'][i]['id'])

}

this.dataForm.typeName = [].concat(t)

this.dataForm.type = [].concat(tid)

},

在给type 和typeName 赋值的时候 ,报错

Invalid prop: type check failed for prop "value". Expected String, Number, got Array

解决方法:

重新定义两个变量:

AtypeName: '',

Atype: '',

回调函数的时候给这两个变量赋值:

treeCheck: function (a, b) {

let t = []

let tid = []

for (var i = 0; i < b['checkedNodes'].length; i++) {

// if (b['checkedNodes'][i]['children'].length > 0) continue

t.push(b['checkedNodes'][i]['name'])

tid.push(b['checkedNodes'][i]['id'])

}

this.AtypeName = t.join(',')

this.Atype = tid.join(',')

},

监听这两个值得变化:

watch: {

AtypeName (val) {

this.dataForm.typeName = val.split(',')

this.dataForm.type = this.Atype.split(',')

console.log(this.dataForm)

}

}

变化时,给type 和typeName 赋值

这是折中的解决方案,不熟悉vue不清楚报错原因,先这样解决吧

标签:checkedNodes,prop,typeName,dataForm,tid,报错,组件,type

来源: https://www.cnblogs.com/pangchunlei/p/11067677.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值