React - 在循环中循环

IT技术 javascript reactjs
2021-05-27 12:04:50

从 JSON 构建导航。如果一个项目有孩子,我需要在孩子的循环周围运行一些前后代码。我的 if 语句有效并且所有单曲都正确创建。它创建了下拉组件,但内部循环没有运行。它正在将其读取为 html。

render() {
    return menuLocal.items.map((menu, i) => {
        return (
          <div key={i}>            
            {(menu.children) ? (
                    <UncontrolledDropdown nav inNavbar>
                        <DropdownToggle nav caret>
                            {menu.title}
                        </DropdownToggle>
                    <DropdownMenu right>

                    menu.children.map((children, i) => {
                        <NavItem key={'children-'+i}>
                            <Link to={menu.object_slug} className="nav-link">{menu.title}</Link>
                        </NavItem>
                    })

                    </DropdownMenu>
                </UncontrolledDropdown>
              
            ): 
                <NavItem>
                    <Link to={menu.object_slug} className="nav-link">{menu.title}</Link>
                </NavItem>
            }
          </div>
        )
      })

    } 

这是一个实时链接,显示了导航中的问题。 http://attorneytemplate.netlify.com/

2个回答

尝试用大括号包裹你的代码。JSX 中的 Javascript 代码必须被包装。

并添加一个返回到您的内部地图。

{
menu.children.map((children, i) => {
                    return (<NavItem key={'children-'+i}>
                        <Link to={menu.object_slug} className="nav-link">{menu.title}</Link>
                    </NavItem>);
                })
}

你在这里有大括号。要么返回对象,要么以这种方式进行 -

 menu.children.map((children, i) => 
                        <NavItem key={'children-'+i}>
                            <Link to={menu.object_slug} className="nav-link">{menu.title}</Link>
                        </NavItem>
                    )

只需删除那些花括号。因为它仍然是里面的一个对象,{}直到你归还它。