You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求协助解决Uncaught TypeError: 无法读取null的isAdmin属性问题

问题:Uncaught TypeError: Cannot read properties of null (reading 'isAdmin')

报错详情

  • 触发场景:从数据库获取用户数据时
  • 报错代码行:const menuToBeRendered = user.isAdmin ? adminMenu : userMenu;
  • 核心原因:user变量为null,尝试读取其isAdmin属性导致类型错误

解决办法

  1. 添加空值防护
    使用可选链操作符或逻辑与判断,避免在user为null时访问属性:

    // 可选链写法(ES2020+支持)
    const menuToBeRendered = user?.isAdmin ? adminMenu : userMenu;
    // 兼容旧环境写法
    const menuToBeRendered = user && user.isAdmin ? adminMenu : userMenu;
    
  2. 初始化用户状态
    在状态管理的初始值中,给user设置默认对象而非null,比如在userSlice里:

    const initialState = {
      user: { isAdmin: false }, // 根据业务需求设置默认值
      // 其他状态字段
    };
    
  3. 等待数据加载完成再渲染
    在组件中先判断user是否存在,再执行菜单渲染逻辑:

    if (!user) {
      return <div>加载中...</div>; // 替换为实际加载状态UI
    }
    const menuToBeRendered = user.isAdmin ? adminMenu : userMenu;
    // 后续渲染代码
    
  4. 排查数据获取流程
    检查用户数据接口是否正常返回数据,确认数据是否正确存入状态管理容器(比如store)中,排查请求失败、数据解析错误等问题。


内容的提问来源于stack exchange,提问作者Goutam Goyal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 18:52:42