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

React菜单报错:Expected an assignment or function call 原因及解决方法

错误原因与修复方案

错误原因

  1. forEach的使用错误:forEach方法仅用于遍历数组执行回调逻辑,本身不会返回任何值(执行后返回undefined),但Antd的Menu组件要求items属性必须接收一个数组,这直接导致组件无法获取有效菜单数据。
  2. 回调内代码语法错误:你在forEach回调里写的key: menuItem["key"];是无效语法——这里既没有用{}包裹形成对象字面量,也没有通过return返回内容,ESLint会把key:识别成无意义的标签语句,因此抛出“期望赋值或函数调用,却看到表达式”的错误。

修复方法

方案1:直接使用现有数组(当前场景最简便)

你的menuItems数组结构完全符合Antd Menu组件对items的要求,直接赋值即可:

<Menu
  theme="dark"
  mode="inline"
  items={menuItems}
/>

方案2:用map加工菜单项(后续扩展需求用)

如果之后需要给菜单项添加图标、修改内容等,用map方法遍历数组并返回新的对象数组(map会返回处理后的新数组,符合items的要求):

// 写法1:用()包裹对象,自动返回
<Menu
  theme="dark"
  mode="inline"
  items={menuItems.map((menuItem) => ({
    key: menuItem.key,
    label: menuItem.label,
    icon: <UserOutlined /> // 示例:添加图标
  }))}
/>

// 写法2:用{}包裹函数体,手动写return
<Menu
  theme="dark"
  mode="inline"
  items={menuItems.map((menuItem) => {
    return {
      key: menuItem.key,
      label: menuItem.label
    };
  })}
/>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 09:42:53