Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,点击按钮之后屏幕变暗,但是没显示任何数据,调出控制台看了一下,后端返回的数据也是正确的。

经过不懈的排查,发现原来是弹窗组件里有个数据报错如题所示,导致了整个界面无法显示。奇怪的是同样用docker容器作为后端和数据库,vscode运行的项目可以正常显示,但是docker使用npm run build构建的前端却出现了问题,匪夷所思。刚开始怀疑是样式的问题,调整了半天发现并不是。后面仔细看了下代码,发现这个问题应该是访问了一个未定义的变量的属性,所以得给个初始值,调整后还是不行,最后终于是发现了问题:

弹窗中有个访问了一个item[xx],但是这个item的初始化用的是const赋值为空,后面才在函数中给item赋值了,总所周知,const定义的变量是个常量,改成let之后就可以运行成功了。。。

真是头大的一天,不理解为啥vscode用npm run serve 运行的前端就可以正常显示

TypeError: Cannot read properties of undefined (reading 'xxx')”错误通常发生在试图访问一个未定义或不存在的属性时。这个错误可能是因为该属性所属的对象未定义,或者该属性不存在于对象中。根据引用和引用,当异步传参时也有可能出现这个错误。 要解决这个错误,可以采取以下几个方法: 1. 确保访问属性之前,对象已经被正确地定义和初始化。可以通过检查对象是否为undefined或null来避免访问未定义属性。 2. 检查代码中是否有语法错误或变量命名错误,特别是在使用点表示法或方括号表示法访问对象属性时。 3. 使用条件语句或可选链操作符(?.)来检查属性是否存在,如: ```javascript if (object && object.property) { // 访问属性的代码 } ``` 或 ```javascript const value = object?.property; ``` 根据引用,在特定情况下,可能会出现无法读取'$el'属性的错误。这可能是因为在访问该属性之前,DOM元素尚未完全加载。可以通过在访问'$el'属性之前,确保DOM元素已经加载完成来解决这个问题。可以使用jQuery的.ready()方法或等待window.onload事件触发来确保DOM加载完成。 总之,当出现“TypeError: Cannot read properties of undefined (reading 'xxx')”错误时,需要检查对象是否被正确定义和初始化,并确保所访问的属性存在。另外,对于特定情况,还需关注DOM元素加载的时机。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [前端解决 “TypeError: Cannot read properties of undefined (readingxxx)的多种情况](https://blog.youkuaiyun.com/sunwenpinglike/article/details/129690571)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [解决异步传参时出现 “TypeError: Cannot read properties of undefined (readingxxx)“这一错误](https://blog.youkuaiyun.com/qq_50906507/article/details/127435324)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宇宙的最后一粒尘埃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值