位置: IT常识 - 正文

[Vue warn]: Error in render: “TypeError: Cannot read properties of undefined(reading“category1Name“

编辑:rootadmin

推荐整理分享[Vue warn]: Error in render: “TypeError: Cannot read properties of undefined(reading“category1Name“,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

明明页面正常显示,但是控制台却一直报 如下 错误

 [Vue warn]:渲染错误:"TypeError:无法读取未定义的属性(读取'category1Name')" 中发现的

 Detail 的 vuex 仓库 

import { reqDetail } from "@/api"export default{ actions:{ async getDetail({commit},skuId){ const result = await reqDetail(skuId) console.log(result) if(result.code == 200){ commit("GETDETAIL", result.data) } } }, mutations:{ GETDETAIL(state,value){ state.DetailList = value } }, state:{ DetailList:{} }, getters:{ categoryView(state){ return state.DetailList.categoryView }, }}

可以看出 DetailList 是通过发送请求获取到的数据,而这个数据,当请求没有返回数据的时候初始状态是一个空的对象或者是数组 

通过 getters 将 DetailList 中的数据提取出来,方便使用

[Vue warn]: Error in render: “TypeError: Cannot read properties of undefined(reading“category1Name“

在组件中使用 categoryView 数据

<div class="conPoin"> <span v-show="categoryView.category1Name" >{{categoryView.category1Name}}</span> <span v-show="categoryView.category2Name" >{{categoryView.category2Name}}</span> <span v-show="categoryView.category3Name" >{{categoryView.category3Name}}</span></div>computed:{ ...mapGetters(['categoryView'])}

会报开头错误

原因:假设我们网络故障,导致DetailList的数据没有请求到,即DetailList是一个空的对象,当我们去调用getters中的return state.DetailList.categoryView时,因为DetailList为空,所以也不存在categoryView,即我们getters得到的categoryView为undefined。所以我们在html使用该变量时就会出现没有该属性的报错。

即:网络正常时不会出错,一旦无网络或者网络问题就会报错。

解决:

categoryView(state){ return state.DetailList.categoryView || {} },

 在返回值后面 加一个 || ,当属性值为 undefined 时,会返回 || 后面的数据 ,这样就不会报错

如果返回值是对象 后面就加 || { }

如果返回值是数组 后面就加 || [ ]

这个错误不会影响页面,但是起码要明白警报的原因

如果在组件中使用初始可能为空的数据,也可以根据返回的数据类型用一个空的数组或者对象兜底

<template> <div class="spec-preview"> <img :src="imgObj.imgUrl"/> <div class="event"></div> <div class="big"> <img :src="imgUrl" /> </div> <div class="mask"></div> </div></template><script> export default { name: "Zoom", props: ["skuImageList"], computed:{ imgObj(){ return this.skuImageList[0] || {} } } }</script>

或者直接判断 当这个数据有值时才显示

<template> <div class="spec-preview"> <img :src="skuImageList[0].imgUrl" v-if="skuImageList"/> <div class="event"></div> <div class="big"> <img :src="skuImageList[0].imgUrl" v-if="skuImageList"/> </div> <div class="mask"></div> </div></template><script> export default { name: "Zoom", props: ["skuImageList"] }</script>
本文链接地址:https://www.jiuchutong.com/zhishi/297419.html 转载请保留说明!

上一篇:前端网页设计必逛的六个宝藏网站(非常值得收藏)(前端网页设计的三大技术)

下一篇:手拉手教您Linux搭建web(linuxulator)

  • 已申报税额和已缴纳税额
  • 个人所得税退税操作流程
  • 不确认递延所得税的特殊情况
  • 出口货物退免税管理办法
  • 个税的专项扣除包括哪些内容
  • 农业种植需要缴税吗
  • 分支机构是否享受小微企业企业所得税优惠?
  • 每月末计提利息分录
  • 代扣代缴个人所得税手续费是否缴纳增值税
  • 报关单有多个合同协议号
  • 固定资产损失如何计提
  • 开工程服务发票后怎么成本
  • 2018年生育保险报销
  • 增值税发票校验码是什么意思
  • 自然人代人开普票合法吗
  • 食堂费用计入应付职工薪酬吗
  • 纳税主要是哪些方面
  • 资产改变用途的法律规定
  • 银行对账单是否属于会计档案
  • 设备定金计入哪个科目
  • 冲失业保险分录怎么做
  • 预收账款贷方负数表示什么
  • mac系统如何切换大小写
  • 代销的价格怎么定
  • 利润总额为负数净利润怎么算
  • 写一段简单的自我介绍
  • 苹果 macOS 13.3 开发者预览版 Beta 2 发布
  • PHP:pg_num_fields()的用法_PostgreSQL函数
  • php dicom
  • 一般纳税人取得普票会计分录
  • 用友的应付单和付款单的区别各是什么时候填制
  • WINDOWS10系统怎样给电脑分区
  • 亏损企业所得税怎么交
  • 你知道怎么训练
  • javascript入门基础
  • 销售费用占销售额比例怎么算
  • 旅行社的增值税怎么算
  • 税费的审计
  • 2022年最新版微信
  • 税务局退的税款如何做账
  • 社保可以补交吗
  • 一般纳税人应交税费二级科目有哪些
  • 给员工购买住房公积金是先办卡吗?
  • 视同销售的几种情况都有什么?
  • 成本核算分摊方法总结
  • 餐饮会计内账怎么记账
  • 职工釆暖费有何新政策
  • 幼儿园收取的生活费免税吗
  • 税收完税证明怎么做账
  • 个人开发者要缴税吗
  • 费用报销单一张写不完怎样转下一张?
  • 为别人开发票先收的税金怎么入帐?
  • 咨询服务行业的收入与成本
  • 定额发票的使用方法
  • 购买药材的发票如何抵扣?
  • 固定资产净值怎么算
  • sql语句优化的13种方法
  • 不同数据库之间的数据一同传递
  • sql复制表的语句
  • window系统大全
  • macos finder的应用程序列表在哪里
  • 影响电脑速度的因素
  • mac电脑finder在哪里
  • Win7系统如何打开磁盘管理工具
  • nomoreporn.exe - nomoreporn是什么进程 有什么用
  • win7如何更改欢迎界面
  • win8怎么查ip地址查询
  • Androidannotation使用之@Rest与服务器交互的JSON数据转换(二)
  • android studio打包jar文件
  • 将字符串小写转换成大写
  • python解读
  • unity 2021.2
  • 传智播客在线课程
  • jquery禁用输入框
  • json对象结构中,关键字key必须为什么类型
  • 安卓手机如何查
  • android退出程序代码
  • 小微企业如何申报增值税
  • 增+6=多少
  • 转租土地合法吗现在
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设