Vue中无法访问Proxy数组内models属性的问题咨询
问题分析与解决
你遇到的核心问题是传入的Proxy对象是数组的直接包装,而非包含models属性的对象,所以sesh.models自然会返回undefined。从控制台输出的Proxy(Array) {0: {…}}能看出来,这个Proxy本质就是数组本身,不是带models字段的对象结构。
修正代码
直接针对数组Proxy处理即可,不需要访问models属性:
loadSessionObject(sesh) { if (sesh) { console.log("session output", sesh); // 校验是否为数组后返回,Proxy数组可正常使用数组方法 return Array.isArray(sesh) ? sesh : []; } return []; },
如果需要把Proxy转为普通数组(避免后续Proxy拦截逻辑影响),可以用:
return Array.isArray(sesh) ? [...sesh] : []; // 或者使用 Array.from(sesh)
补充说明
你之前的代码逻辑是基于“传入的是包含models数组的对象”来写的,但实际传入的是数组的Proxy实例,两者结构完全不同。如果原本业务逻辑应该传入{ models: [...] }结构的对象,需要检查上游代码是否传错了参数。
内容的提问来源于stack exchange,提问作者Marquardt
相关产品推荐
相关产品推荐

