React菜单报错:Expected an assignment or function call 原因及解决方法
错误原因与修复方案
错误原因
forEach的使用错误:forEach方法仅用于遍历数组执行回调逻辑,本身不会返回任何值(执行后返回undefined),但Antd的Menu组件要求items属性必须接收一个数组,这直接导致组件无法获取有效菜单数据。- 回调内代码语法错误:你在
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
相关产品推荐
相关产品推荐

