欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > vue3 ts vite开发bug记录(类型转换)

vue3 ts vite开发bug记录(类型转换)

2024/10/25 6:30:03 来源:https://blog.csdn.net/weixin_44295627/article/details/141171400  浏览:    关键词:vue3 ts vite开发bug记录(类型转换)

问题描述

const getModuleInfo = async () => {const rtn = await GetModuleInfo(moduleName.value);const info = toCamelCase(rtn);if (info.data.baseResp.ret === 0) {const moduleInfo = info.data.moduleData;TableData.value = moduleInfo; //这句代码会报错 提示下面的信息}
};

报错提示:Uncaught (in promise) TypeError: Invalid attempt to spread non-iterable instance.
In order to be iterable, non-array objects must have a Symbol.iterator method.

思考过程

问题可能出在 moduleInfo 的数据结构上。TableData.value 可能期望的是一个数组或其他可迭代对象,而 moduleInfo 可能不是。

检查 moduleInfo 的类型
 console.log('moduleInfo type:', typeof moduleInfo); //打印的是 objectconsole.log('moduleInfo isArray:', Array.isArray(moduleInfo)); //false

解决方案

moduleInfo 不是数组:
如果 moduleInfo 不是一个数组,而 TableData.value 期望的是一个数组,那么将 moduleInfo 转换为数组即可解决。

if (info.data.baseResp.ret === 0) {const moduleInfo = info.data.moduleData;console.log('moduleInfo0812', moduleInfo);console.log('moduleInfo type:', typeof moduleInfo);console.log('moduleInfo isArray:', Array.isArray(moduleInfo));TableData.value = Array.isArray(moduleInfo) ? moduleInfo : [moduleInfo];
}

哈哈哈哈哈我又来刷ts基础了 苦笑:(

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com