【问题标题】:clicking nested list item also clicks parent react js单击嵌套列表项也单击父反应 js
【发布时间】:2021-11-05 03:20:00
【问题描述】:

我有以下导航栏,一些带有下拉菜单的项目(嵌套 ul)。当我单击嵌套的 li 项时,它也显示父 onClick 函数的console.log

const redirectAndShuffle = (newpath, pindex, cIndex) => {
    history.push(newpath)
}

<ul className='header__nav'>
    {NAV_ITEMS.map((nav, i) => (
        <li
            width={nav.width}
            key={i}
            onClick={() => {
                console.log('sldfj');
            }}
            className={`header__nav__item ripple__container list-link ${isActive(
                nav.path,
                nav.subMenu
            )}`}>
            {nav.alternativeName ? nav.alternativeName : nav.name}
            {nav.subMenu?.length > 0 && (
                <ul className='inner-ul' width={innerUlWidth(nav)}>
                    {nav.subMenu.map((sm, j) => (
                        <li
                            key={sm.path}
                            className={`header__nav__item list-link ripple__container`}
                            onClick={() => redirectAndShuffle(sm.path, i, j)}>
                            {sm.name}
                        </li>
                    ))}
                </ul>
            )}
        </li>
    ))}
</ul>

【问题讨论】:

    标签: javascript reactjs ecmascript-6


    【解决方案1】:

    它叫event bubbling,如果你想停止它就加Event.stopPropagation()

    <li
      key={sm.path}
      className="header__nav__item list-link ripple__container"
      onClick={(e) => {
        e.stopPropagation();
        redirectAndShuffle(sm.path, i, j);
      }}
    >
      {sm.name}
    </li>;
    

    【讨论】:

      猜你喜欢
      • 2014-05-12
      • 2020-04-27
      • 1970-01-01
      • 2012-08-06
      • 1970-01-01
      • 2018-12-13
      • 2023-03-06
      • 2020-04-20
      • 2013-11-28
      相关资源
      最近更新 更多