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

React中.map()渲染Sidebar列表无返回、属性不显示问题求助

问题原因
  • 子组件Submenu参数接收错误:React函数组件的第一个入参是完整的props对象,你当前直接用(item)作为入参,拿到的是包含item属性的整个props对象,而非你传递的item数据本身,所以item.path、item.title实际是取props对象上不存在的属性,自然为空。
  • 主组件Sidebar存在key赋值错误:你在map中使用key={item.index},但index是map遍历的第二个参数,item对象本身不存在index属性,虽然不影响当前字段渲染,但会触发React的key警告。
修复方案

1. 修复Submenu组件的props接收

两种写法二选一即可:

写法1:直接解构props中的item属性

const Submenu = ({item})=>{
    return (
        <SidebarLink to={item.path} >
                <SidebarLabel>{item.title}</SidebarLabel>
        </SidebarLink>
)
}

写法2:先接收完整props再提取item

const Submenu = (props)=>{
    const item = props.item
    return (
        <SidebarLink to={item.path} >
                <SidebarLabel>{item.title}</SidebarLabel>
        </SidebarLink>
)
}

2. 修复Sidebar组件的key属性

将map遍历的key修改为合法的唯一值:

const Sidebar = () => {
    return (
        <>
            <Nav>
                {SidebarData.map((item, index)=>{
                    // 优先用item自带的唯一属性如path,没有的话再用index
                    return <Submenu item={item} key={item.path || index} />
                })}
            </Nav>
        </>
    )
}

内容的提问来源于stack exchange,提问作者El Mehdi Jilali

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 12:15:04