javascript - 如何在 NextJs 中使用 useState Hook 进行多个下拉菜单?

标签 javascript reactjs react-hooks next.js

我正在尝试创建一个管理面板,其中有一个侧边栏菜单。我创建了一个下拉菜单,它使用 useState 钩子(Hook)工作,但没有按我的意愿工作。我想要的是当我点击 客户所以 if 语句应该只为它的 child 运行,而不是为所有的 sibling 运行。

  const [isActive, setIsActive] = useState(false);
  
  const handleToggle = () => {
      setIsActive(!isActive)
  }
下面是下拉代码。
<li>
          <a className={`${isActive?'open-sibling':'hidden-sibling'} left-menu-list`} onClick={handleToggle}>
            <i className="las la-user-alt mr-2"></i>
            <span>Clients</span>
            <i className="las la-angle-up ml-auto"></i>
          </a>
          <ul>
            <Link href="/clients/list">
              <li>
                <a className="left-menu-list">
                  <i className="las la-users mr-2"></i> View All Clients
                </a>
              </li>
            </Link>
          </ul>
</li>
请找到输出的 GIF:-
Output

最佳答案

给你一个解决方案

const [isActive, setIsActive] = useState({
  status: false,
  key: ""
});
  
const handleToggle = (key) => {
  if(isActive.key === key) {
    setIsActive({
      status: false,
      key: ""
    });
  } else {
    setIsActive({
      status: true,
      key
    });
  }
}
<li>
          <a className={`${isActive.key == 'client' ? 'open-sibling':'hidden-sibling'} left-menu-list`} onClick={() => handleToggle("client")}>
            <i className="las la-user-alt mr-2"></i>
            <span>Clients</span>
            <i className="las la-angle-up ml-auto"></i>
          </a>
          <ul>
            <Link href="/clients/list">
              <li>
                <a className="left-menu-list">
                  <i className="las la-users mr-2"></i> View All Clients
                </a>
              </li>
            </Link>
          </ul>
</li>

请使用 statuskey查看子元素

关于javascript - 如何在 NextJs 中使用 useState Hook 进行多个下拉菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68957039/

相关文章:

javascript - 应用程序脚本 : Add field to formobject

reactjs - 无法获取React-select中选定的值

javascript - react Hook : accessing up-to-date state from within a callback

javascript - 使用 styled-jsx,如何在变量中使用 JSX 上存储的样式?

javascript - 使用 React Hooks 卸载组件时如何访问状态?

reactjs - 在 react Hook 中传递状态与使用上下文

javascript - 如何将可观察到的响应转换到本地对象

Javascript/CSS3 转换问题

javascript - 为 Bootstrap 元素加载 cookie 的更好方法

javascript - 如何在Reactjs中制作组件实例