帮助调试代码,分析错误信息,定位问题根源,提供修复建议。
Help debug code by analyzing error messages, identifying root causes, and providing fix suggestions.
当用户请求以下操作时使用此 skill:
| 错误类型 | 可能原因 |
|---|---|
| TypeError | 类型不匹配、空值操作 |
| ReferenceError | 未定义变量、作用域问题 |
| SyntaxError | 语法错误、缺少括号/引号 |
| RuntimeError | 运行时逻辑错误 |
| NetworkError | 网络请求失败、超时 |
对于每个错误,需要分析:
使用 templates/debug-report.md 模板格式化输出。
Use the templates/debug-report.md template to format output.
## 调试分析报告 / Debug Analysis Report
### 错误概述 / Error Summary
[错误类型和简要描述]
### 根本原因 / Root Cause
[详细分析]
### 修复方案 / Fix
[具体代码修改]
### 预防建议 / Prevention
[如何避免类似问题]
错误信息:
TypeError: Cannot read properties of undefined (reading 'map')
at UserList (UserList.jsx:15:23)
at renderWithHooks (react-dom.development.js:14985:18)
相关代码:
function UserList({ users }) {
return (
<ul>
{users.map(user => (
<li key={user.id}>{user.name}</li>
))}
</ul>
);
}
TypeError: Cannot read properties of undefined (reading 'map')
在 UserList 组件第 15 行调用 .map() 时,users 变量为 undefined。
undefined 上调用 .map() 方法users prop方案 1: 添加默认值(推荐)
function UserList({ users = [] }) {
return (
<ul>
{users.map(user => (
<li key={user.id}>{user.name}</li>
))}
</ul>
);
}
方案 2: 条件渲染
function UserList({ users }) {
if (!users || users.length === 0) {
return <p>No users found</p>;
}
return (
<ul>
{users.map(user => (
<li key={user.id}>{user.name}</li>
))}
</ul>
);
}
方案 3: 可选链操作符
function UserList({ users }) {
return (
<ul>
{users?.map(user => (
<li key={user.id}>{user.name}</li>
))}
</ul>
);
}
使用 TypeScript - 添加类型检查
interface Props {
users: User[];
}
添加 PropTypes - 运行时类型检查
UserList.propTypes = {
users: PropTypes.array.isRequired
};
检查数据源 - 确保父组件正确传递数据
处理加载状态 - 在数据获取期间显示加载指示器