如何修复TypeError: Cannot read properties of undefined (reading 'trim')报错?
修复TypeError: Cannot read properties of undefined (reading 'trim')
这个错误的核心原因是**items[i].address的值为undefined**——你要调用trim()的目标根本不存在,自然会触发报错。以下是几种可行的修复方案:
方案1:先校验再处理(推荐,可明确排查异常数据)
先检查数组元素和address字段是否有效,避免无效访问,还能定位异常数据:
for (let i = 0; i < items.length; i++) { const currentItem = items[i]; // 先判断元素本身和address字段是否有效 if (!currentItem || typeof currentItem.address !== 'string') { console.warn(`第${i}条数据异常:元素或address字段无效`, currentItem); continue; // 跳过这条数据,继续处理下一个 } const address = currentItem.address.trim(); const token_uri = `${TOKEN_BASE_URI}/${tokenId}.json`; // 后续业务逻辑... }
方案2:用可选链+空值合并做容错处理
如果不想跳过数据,而是给缺失address的情况设置默认值,可以用ES6语法快速处理:
for (let i = 0; i < items.length; i++) { // 可选链?.避免访问undefined的属性,空值合并??确保默认是空字符串 const address = (items[i]?.address ?? "").trim(); const token_uri = `${TOKEN_BASE_URI}/${tokenId}.json`; // 后续业务逻辑... }
额外排查建议
- 先执行
console.log(items)打印数组结构,确认是不是某些元素本来就没有address字段,或者字段值为null/undefined。 - 检查数据源(比如接口返回、本地数据文件),确认数据格式是否符合预期——这类错误大多是数据本身的问题,而非代码逻辑错误。
内容的提问来源于stack exchange,提问作者Rhyssa6
相关产品推荐
相关产品推荐

