Error in render: “TypeError: Cannot read properties of undefined (reading ‘length‘)“

得意时要看淡,失意时要看开。不论得意失意,切莫大意;不论成功失败,切莫止步。志得意满时,需要的是淡然,给自己留一条退路;失意落魄时,需要的是泰然,给自己觅一条出路Error in render: “TypeError: Cannot read properties of undefined (reading ‘length‘)“,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

报错如下

在这里插入图片描述
在vue获取后台系统的菜单menu时,报此错,length未定义,经排查,是vue访问后台获取menu list数组的长度时引发的。

那么问题来了:后台menu菜单的length必然是>0的,但是这里未获取到就离谱。因为项目在上一个版本还是正常的。所以在跟之前版本的对比之下发现原因如下:

原因

在这里插入图片描述
后台新版本增加了jackson的配置类自定义。本来这个配置类是为了允许出现特殊字符/转义字符而设置的。其他没用,只好注释掉它了。

objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
// Include.NON_EMPTY 属性为 空(””) 或者为 NULL 都不序列化,则返回的json是没有这个字段的。这样对移动端会更省流量

虽然定位到问题所在了,但是还是有疑惑:这个配置是当返回的json存在一个属性为null或者“”时,不进行序列化,并去掉这个字段。但是我后台返回给vue的菜单列表menuList是有size的,里面也没有空字段,不清楚为什么会引发配置的过滤,最终导致vue获取menu.length报错未定义。


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

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/157287.html

(1)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!