请求协助解决Uncaught TypeError: 无法读取null的isAdmin属性问题
问题:Uncaught TypeError: Cannot read properties of null (reading 'isAdmin')
报错详情
- 触发场景:从数据库获取用户数据时
- 报错代码行:
const menuToBeRendered = user.isAdmin ? adminMenu : userMenu; - 核心原因:
user变量为null,尝试读取其isAdmin属性导致类型错误
解决办法
添加空值防护
使用可选链操作符或逻辑与判断,避免在user为null时访问属性:// 可选链写法(ES2020+支持) const menuToBeRendered = user?.isAdmin ? adminMenu : userMenu; // 兼容旧环境写法 const menuToBeRendered = user && user.isAdmin ? adminMenu : userMenu;初始化用户状态
在状态管理的初始值中,给user设置默认对象而非null,比如在userSlice里:const initialState = { user: { isAdmin: false }, // 根据业务需求设置默认值 // 其他状态字段 };等待数据加载完成再渲染
在组件中先判断user是否存在,再执行菜单渲染逻辑:if (!user) { return <div>加载中...</div>; // 替换为实际加载状态UI } const menuToBeRendered = user.isAdmin ? adminMenu : userMenu; // 后续渲染代码排查数据获取流程
检查用户数据接口是否正常返回数据,确认数据是否正确存入状态管理容器(比如store)中,排查请求失败、数据解析错误等问题。
内容的提问来源于stack exchange,提问作者Goutam Goyal
相关产品推荐
相关产品推荐

