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

摘要:
错误报告信息:代码信息:调用树组件,选择一些信息选择后,返回所选数据信息,并在父组件中的数据中给出数组(类型,t)

报错信息:

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

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

<componentsTree ref="typeTreeComponent"
  @treeCheck="treeCheck"
  :isClearAllChecked=true
  :defaultProps="defaultProps">
</componentsTree>

  

选择之后返回选中数据信息,并且在父组件中给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不清楚报错原因,先这样解决吧

免责声明:文章转载自《vue调用组件,组件回调给data中的数组赋值,报错Invalid prop type check failed for prop value. Expecte》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Pandas:让你像写SQL一样做数据分析java关于数组之间的相互赋值下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

微信小程序如何动态增删class类名

由于微信小程序开发不同于以往的普通web开发, 因此无法通过js获取wxml文件的dom结构, 因此从js上直接添加一个类名应该不可能了. 可是我们可以通过微信小程序数据绑定以及view标签的”data-“自定义属性去更改标签类名.  num记得设置默认值 ,这样第一个view颜色会是红色的 data:{  num:0, } .cur写上样式 .cur...

vue请求本地json数据

1.下载vue-resource插件   cnpm install vue-resource   1.2全局引入vue-resource:   在main.js   import VueResource from 'vue-resource';   Vue.use(VueResource);   2.把静态josn文件放在项目根的 static文件夹:...

快学Scala-04-函数和数组

1.函数的定义形式 def add([参数:类型])[返回类型][=]{方法体} 注意:方法体的return 不是必须的,最后一句默认返回 方法体的花括号可以没有 总之 可以没有参数,没有返回值,没有=号,没有花括号,没有return   def add(a:Int,b:Int):Int={ return a+b } def add(a:I...

js获取节点

1. 通过顶层document节点获取:(1) document.getElementById(elementId):该方法通过节点的ID,可以准确获得需要的元素,是比较简单快捷的方法。如果页面上含有多个相同id的节点,那么只返回第一个节点。 如今,已经出现了如prototype、Mootools等多个JavaScript库,它们提供了更简便的方法:$(i...

【JS笔记】5.2 Array类型

1. Array引用类型的特点 每一项可以保存任意类型的数据; 数组大小可以动态调整 2.创建数组的方式 方法一:用Array()构造函数 无参数 var colors = new Array();//空数组 自然数参数 var colors = new Array(20);//20用来设置length属性的值,创建一个包含20个undefined的...

es6 解构赋值

ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。 关于给变量赋值,传统的变量赋值是这样的: var arr = [1,2,3];//把数组的值分别赋给下面的变量; var a = arr[0]; var b = arr[1]; var c = arr[2];...