项目是Vue的,基于elementUI的后台管理系统。
Invalid prop: type check failed for prop "row". Expected String, got Object.
昨天遇到了这么个错误,找了半天,网上也找了很久的资料,有很多跟我遇到的问题类似的有很多,但解决办法形似各样,没有我这种情况的,但还好经过我的不懈努力还是找到了原因。
一、我从父组件传递了一个值给子组件,在自组件接收的时候出现了类型设置错误,代码是这样的
父组件:
<!--修改子组件-->
<template slot-scope="props">
<schoolchange :row="props.row"/> //我在这里绑定了父组件的值,要传递给子组件
</template>
子组件:
//在data中接收传过来的值
props:{
row:String,
//在这里我把他写成了string类型,其实呢他是个对象object,把string改成object就不报错了,这里类型一定要和父组件的值的类型相同
}
二、我还遇到一种情况,也是这种类型的错误,原因就是你再data中存的数据可能声明的格式有问题,因为你可能存的数据格式跟需求是不一样的,后端要数字类型,你声明的时候是' ',那就会报这种错误。这个问题是我发现这种类型错误的的第二种情况。
data(){
return{
price:null, //这个null声明的就是数字类型,如果后端需要的是数字类型,而你写的是'',那么就一定会报错
goods:'' , //同理,''就是字符串,要求字段要什么类型你就声明什么类型
form:{
id:'' //这个就是对象写法
},
tableata:[] //声明数组
}
}
虽然功能好用,但是报错看着是真的难受,所以还是给纠正了。