css - React Web 导航栏树菜单激活

标签 css reactjs navigation

我正在开发带有下拉菜单的 NavBar。一切正常,但我需要在单击时显示树菜单。问题是如何只显示用户单击的菜单。我正在添加“事件”类名来显示它。

因此,当用户单击“产品”选项卡时,它应该只显示产品菜单,而不是同时显示所有菜单。

<nav>
  <ul>
    <li>
      <p>Nav Item1</p>
      <div className='menu active'>
        <ul>
          <li>Menu Item 1</li>
          <li>Menu Item 2</li>
          <li>Menu Item 3</li>
        </ul>
      </div>
    </li>
    <li>
      <p>Nav Item2</p>
      <div className='menu'>
        <ul>
          <li>Menu Item 1</li>
          <li>Menu Item 2</li>
          <li>Menu Item 3</li>
        </ul>
      </div>
    </li>
    <li>
      <p>Nav Item3</p>
      <div className='menu'>
        <ul>
          <li>Menu Item 1</li>
          <li>Menu Item 2</li>
          <li>Menu Item 3</li>
        </ul>
      </div>
    </li>
  </ul>
</nav>

所以每当我点击 Nav Item 时,它应该呈现菜单。有简单的方法吗?或者我需要为每个导航项创建一个函数和状态变量?

最佳答案

没有代码很难回答。但是您的激活应该使用可能的元素作为 child ,并且只在激活时显示它们。

在 React 中使用类更简单的方法是直接使用 bool 值。 这是可能的,因为 false 用作 null,因此不会呈现。

import * as React from 'react';

interface Props {
  tabName: string;
}

class TabAndMenu extends React.Component<Props> {
  private visible = false;

  render() {
    return 
      <><span onClick={() => this.visible = true}>{this.props.tabName}</span>
       {visible && this.props.children}
      </>
  }  
}

如果您需要更具体的帮助,您应该发布 jsfiddle/代码沙箱或其他向我们展示您的代码的方式。

关于css - React Web 导航栏树菜单激活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58895263/

相关文章:

Jquery .click 函数,更改特定 id 的行为

php - 使用 from info 创建一个自动 div

javascript - 等到 CSS 更改(调整大小)生效后再继续脚本

reactjs - 在React ES-6中设置State后未到达语句

javascript - 单击外部时隐藏下拉菜单

wordpress - CSS3 下拉导航

jquery - 如何将 css 属性设置为具有特定属性的标签?

html - 图像高度大小不会改变,只有宽度会改变

c# - 既然是选择列表,我怎样才能按顺序设置导航?

css - 父级悬停时的不透明度正在转移到子菜单;如何使用 CSS 防止这种情况