<>报错如下

在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报错未定义。

技术
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信