为了账号安全,请及时绑定邮箱和手机立即绑定

检查 JSON 是否在返回中多次包含子元素

检查 JSON 是否在返回中多次包含子元素

ibeautiful 2023-11-02 21:51:24
我正在尝试在循环遍历 JSON 子元素之前检查它们的长度(或者是否存在)。我的例子有一个注释:{const itHasChildren = item.child_items.length;}我上面得到的错误是src/Components/HeaderComponent/header.js 第 60:29 行:“childItem”未定义 no-undef搜索关键字以了解有关每个错误的更多信息。 return (    <nav >          <ul className="navbar-nav">        {menus &&          menus.map((item) => (                        <li className="nav-item active" key={item.ID}>                                <Link >{item.title} </Link>     // I NEED TO CHECK THE LENGTH  OR IF child_items EXISTS      //  HERE SO I CAN DECIDE WHETHER TO DISPLAY THIS DIV OR NOT              {item.child_items.map((childItem).length)}              <div className="dropdown-menu" aria-labelledby="navbarDropdownMenuLink" >              {item.child_items &&                item.child_items.map((childItem) => (                                  <Link >{childItem.title} </Link>                                          ))}                  </div>            </li>                     ))}      </ul> </nav>  );
查看完整描述

2 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

我已经清理了你的代码,所以它应该可以工作。只是地图内的第一个元素需要,key根据您的数据,它可能是数组中的索引位置


  return (

    <nav className="navbar navbar-expand-lg navbar-light bg-light">

      <button

        className="navbar-toggler"

        type="button"

        data-toggle="collapse"

        data-target="#navbarNavDropdown"

        aria-controls="navbarNavDropdown"

        aria-expanded="false"

        aria-label="Toggle navigation"

      >

        <span className="navbar-toggler-icon"></span>

      </button>


      <div className="collapse navbar-collapse" id="navbarNavDropdown">

        <ul className="navbar-nav">

          {(menus || []).map((item, ix) => (

            <li key={ix} className="nav-item active">

              <Link

                className="nav-link"

                to={{

                  pathname: item.slug,

                  state: {

                    pageId: item.slug

                  }

                }}

              >

                {item.title}

              </Link>


              {(item.child_items || []).map((childItem, ix) => (

                <div key={ix} className="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">

                  <Link

                    className="dropdown-item"

                    to={{

                      pathname: childItem.slug,

                      state: {

                        pageId: childItem.slug

                      }

                    }}

                  >

                    {childItem.title}

                  </Link>

                </div>

              ))}

            </li>

          ))}

        </ul>

      </div>

    </nav>

  );


查看完整回答
反对 回复 2023-11-02
?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

这是我正在寻找的语法和条件

<li 
            className={
                item.child_items
                  ? "nav-item dropdown"
                  : "nav-item  "
              }


查看完整回答
反对 回复 2023-11-02
  • 2 回答
  • 0 关注
  • 67 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信