reactJs 中的 .map() 没有返回任何内容

Posted

技术标签:

【中文标题】reactJs 中的 .map() 没有返回任何内容【英文标题】:.map() in reactJs is not returning anything 【发布时间】:2021-10-02 00:23:57 【问题描述】:

我是新手,我正在尝试从外部 SidebarData.js 文件(在同一根 /components/..)中添加渲染项目列表 我不确定为什么我的地图功能没有返回任何东西。 我得到了一个正确的元素列表,但 item.title 和 item.path 似乎没有呈现......

感觉道具有问题。

我试着写了

render()
<h1>SubmenuData[1].title</h1>

它工作正常,但是当我尝试映射整个数组时,它似乎没有渲染任何东西。它呈现正确数量的元素,但标题和路径没有返回...

这是我的两个组件:侧边栏(主要的)

import React from 'react'
import styled from 'styled-components'
import  SidebarData  from './SidebarData'
import Submenu from './Submenu'

    const Nav = styled.div`
        background: #f5f5f5;
        color: #7d7d7d;
        display:flex;
        justify-content:flex-start;
        height:100%;
        width:15%;
         
    `

const Sidebar = () => 
    return (
        <>
            <Nav>
                SidebarData.map((item, index)=>
                    return <Submenu item=item key=item.index />
                )
            </Nav>
        </>
    )


export default Sidebar (Where i think there's a problem)

和子菜单

import React,  Component  from 'react'
import styled from 'styled-components'
import  Link  from "react-router-dom"

const SidebarLink = styled(Link)`
    display: flex;
    color: #404040;
`

const SidebarLabel = styled.span`
    color:#000;
`

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


export default Submenu

【问题讨论】:

你能控制台日志SidebarData吗?它是什么样子的 @Toxnyc 它返回正确的输出:数组 尝试将这一行 const Submenu = (item)=> 更改为 const Submenu = (item) => React 中的函数组件接受一个名为 props 的参数。如果你想访问你的道具,你需要调用 props.item 或直接在箭头函数中破坏道具,就像我建议的更改一样。 @ElMehdiJilali 尝试替换 - (item)=> WITH (this.props.item)=> 在子菜单中 【参考方案1】:

我猜你接受道具的方式是错误的。像这样解构道具:

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


export default Submenu

【讨论】:

以上是关于reactJs 中的 .map() 没有返回任何内容的主要内容,如果未能解决你的问题,请参考以下文章

Reactjs - /dist 文件夹只有 2 个文件 - bundle.js 和 bundle.js.map - 不包含任何其他文件

在 Javascript/Reactjs 中使用 Fetch API 和 map() 显示 JSON 数据

find 和 map的应用

find 和 map的应用

ReactJS 不编译 boostrap 组件。只返回 HTML 组件。 0xerr011d

ReactJS onClick 不适用于菜单中的第一个元素