# 常见问题修复记录 记录历史 bug 修复经验,避免重复踩坑。 * * * ## findLabel 函数递归问题 菜单递归查找 label 时,找不到应返回 `null` 而非 `key`,避免 truthy 值导致提前返回。 ```jsx // 错误:返回 key 可能导致外层误判 function findLabel(key, items) { for (const item of items) { if (item.key === key) return item.label if (item.children) { const found = findLabel(key, item.children) if (found) return found // 错误:key 本身是 truthy } } return key // 错误 } // 正确:找不到返回 null function findLabel(key, items) { for (const item of items) { if (item.key === key) return item.label if (item.children) { const found = findLabel(key, item.children) if (found) return found } } return null // 正确 } ``` * * * ## 路由 path 与菜单 key 一致性 App.jsx 中的 Route path 必须与菜单 key 完全一致,包括前导斜杠: | 类型 | 示例 | | --- | --- | | 菜单 key | `/purchase/order` | | 路由 path | `/purchase/order`(不是 `purchase/order`) | * * * ## 标签页状态管理 标签页关闭时需判断是否为最后一个可关闭标签,避免关闭后 `activeKey` 指向不存在的标签。