vue常见错误:Invalid prop: type check failed for prop “data“. Expected Array, got Object

vue常见错误:Invalid prop: type check failed for prop “data“. Expected Array, got Object错误截图错误分析这个错误的意思是说:无效的命名数据:“数据”类型检查失败。期望数组,得到对象,那么我们这个时候很明白了,是类型不对,但是是哪一行的呢?打开错误信息下面的详情,这个时候找到后缀是自己页面的.vue文件,看看是哪一行,就知道问题在哪了!下面的是我的:warn @ vue.esm.js?efeb:610assertProp @ vue.esm.js?efeb:1691vali…

大家好,又见面了,我是你们的朋友全栈君。

错误截图

desc-cn

错误分析

这个错误的意思是说:无效的命名数据:“数据”类型检查失败。期望数组,得到对象,那么我们这个时候很明白了,是类型不对,但是是哪一行的呢?打开错误信息下面的详情,这个时候找到后缀是自己页面的.vue文件,看看是哪一行,就知道问题在哪了!下面的是我的:

warn	@	vue.esm.js?efeb:610
assertProp	@	vue.esm.js?efeb:1691
validateProp	@	vue.esm.js?efeb:1618
updateChildComponent	@	vue.esm.js?efeb:2975
prepatch	@	vue.esm.js?efeb:4255
patchVnode	@	vue.esm.js?efeb:6029
updateChildren	@	vue.esm.js?efeb:5914
patchVnode	@	vue.esm.js?efeb:6040
updateChildren	@	vue.esm.js?efeb:5914
patchVnode	@	vue.esm.js?efeb:6040
updateChildren	@	vue.esm.js?efeb:5914
patchVnode	@	vue.esm.js?efeb:6040
updateChildren	@	vue.esm.js?efeb:5914
patchVnode	@	vue.esm.js?efeb:6040
patch	@	vue.esm.js?efeb:6203
Vue._update	@	vue.esm.js?efeb:2790
updateComponent	@	vue.esm.js?efeb:2908
get	@	vue.esm.js?efeb:3278
run	@	vue.esm.js?efeb:3353
flushSchedulerQueue	@	vue.esm.js?efeb:3109
(anonymous)	@	vue.esm.js?efeb:1938
flushCallbacks	@	vue.esm.js?efeb:1857
Promise.then (async)		
microTimerFunc	@	vue.esm.js?efeb:1905
nextTick	@	vue.esm.js?efeb:1951
queueWatcher	@	vue.esm.js?efeb:3201
update	@	vue.esm.js?efeb:3343
notify	@	vue.esm.js?efeb:721
reactiveSetter	@	vue.esm.js?efeb:1046
proxySetter	@	vue.esm.js?efeb:3430
(anonymous)	@	main.vue?512e:426
Promise.then (async)		
(anonymous)	@	main.vue?512e:408

看倒数第三行,是我的文件,那么我的错误是在426行,看一下我的426行代码是什么:

that.common_table_info = res.data.data.room_type_price;

这是我的426行代码,那么其实这个时候问题就很明显了,说明我前面的是一个数组,后面的是一个对象,那么common_table_info是我绑定的一个表格的数据,element:data=‘common_table_info’,他希望拿到的是一个数组,但是我给了他一个对象,数据是渲染上去了,但是其实是报错的。下面的是res.data.data.room_type_price返回的结果,很明显是一个对象。

{ 
   
    "message": "success",
    "data": { 
   
        "room_type_price": { 
   
            "FYDCF": { 
   
                "room_type": "风雅大床房",
                "2019-05-16": "35/221",
                "2019-05-17": "39/221",
                "2019-05-18": "39/221",
                "2019-05-19": "39/221",
                "2019-05-20": "39/221",
                "2019-05-21": "39/221",
                "2019-05-22": "39/221"
            },
            "FYSCF": { 
   
                "room_type": "风雅双床房",
                "2019-05-16": "36/239",
                "2019-05-17": "39/239",
                "2019-05-18": "39/239",
                "2019-05-19": "39/239",
                "2019-05-20": "39/239",
                "2019-05-21": "39/239",
                "2019-05-22": "39/239"
            },
            "FYTF": { 
   
                "room_type": "家庭套房",
                "2019-05-16": "0/359",
                "2019-05-17": "0/359",
                "2019-05-18": "0/359",
                "2019-05-19": "0/359",
                "2019-05-20": "0/359",
                "2019-05-21": "0/359",
                "2019-05-22": "0/359"
            }
        }
    },
    "new_authorization": "af3e405073cb44baaf6e5508019c9a3b"
}
问题解决

既然找到了原因,解决就很简单了,直接将对象转为数组就好了!

let common_table_info = [];
              /** * 这里需要将拿到的对象转为数组,进行赋值,这样才不会宝类型错误 */
              for(let i in res.data.data.room_type_price){ 
   
                common_table_info.push(res.data.data.room_type_price[i]);
              }
              that.common_table_info = common_table_info;

到这里就解决了,很多的问题都是我们的大意造成的,其实只要写代码认真一些,这些问题应该都不会出现。

喜欢的可以关注,一起学习!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131701.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月11日 下午11:36
下一篇 2022年6月11日 下午11:36


相关推荐

  • 深入浅出CMS垃圾收集器

    深入浅出CMS垃圾收集器如果说 JDK1 8 是最常用的线上版本 那么 CMS 垃圾回收器就是最常用的老年代垃圾回收器

    2025年7月11日
    5
  • pycharm flask重定向port无效

    pycharm flask重定向port无效原因是使用了 pycharm 给的 flask 框架 默认 5000 可以用以下两种方法解决 方法一 可以用在 tornado 架起 flask 时使用 https jenrey blog csdn net article details spm 1001 2101 3001 6650 1 amp utm medium distribute pc relevant none task blog 2 7Edefault 7ECTRLIST 7Edefault 1 no search link amp

    2026年3月20日
    3
  • 解决gradle下载慢的问题

    解决gradle下载慢的问题开发工具:IntelliJIDEA&AndroidStudio问题:新建项目下载gradle慢的问题解决:打开用户主目录linux平台/home/用户名/.gradlewindows平台c:\Users\用户名\.gradlemacos平台/Users/用户名/.gradle找到./gradle/wrapper/dist/gradle-版本号-bin目

    2022年6月16日
    32
  • 关于物化视图

    关于物化视图物化视图是一种特殊的物理表 物化 Materialized 视图是相对普通视图而言的 普通视图是虚拟表 应用的局限性大 任何对视图的查询 Oracle 都实际上转换为视图 SQL 语句的查询 这样对整体查询性能的提高 并没有实质上的好处 1 物化视图的类型 ONDEMAND ONCOMMIT 二者的区别在于刷新方法的不同 ONDEMAND 顾名思义 仅在该物化视图 需要 被刷新了 才进行刷新 REFRESH 即更新物化视图 以保证和基表数据的一致性 而 ONCOMMIT 是说 一旦基表有了 COMMI

    2026年3月19日
    2
  • Redis可视化客户端redisClient下载[通俗易懂]

    Redis可视化客户端redisClient下载[通俗易懂]百度网盘下载地址:https://pan.baidu.com/s/1X4ZtY9n-rJeRySGkIa1wdA提取码:061f

    2022年10月12日
    4
  • 我们究竟在为谁而工作?80%的人没有搞懂.

    首问: 我们的价值观是什么?首先要明白自己的价值观是什么?我们想过什么样的生活,我们将来要成为什么样的人?我现在的工作我满意吗?我现在的工作态度满意吗? 我觉得首先要问清楚自己这些…

    2021年6月21日
    148

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号