REACT - 单击时切换活动按钮 class

REACT - toggle active button class on click

我需要 2 个按钮,一个用于“左侧”,一个用于“右侧”。我在主文件中创建了一个单独的组件(子文件夹)。当用户单击某个按钮时,它必须变为“活动”,得到“方圆--活动”class,以便它显示在 GUI 上。但是目前我在弄清楚如何在 2 个单独的按钮上执行此操作时遇到问题,当时只有其中一个可以激活。在我当前的代码中,当单击其中任何一个按钮时,这些按钮只会相互切换为活动状态。我该如何解决这个问题?

    const [isActive, setActive] = useState(false);

    const toggleClass = () => {
        setActive(!isActive);
    };

     <ul class="buttons-in-line no-bullets flex-line">
       <li>
          <button type="button" className={isActive ? 'square-round square-round--active square-round--min-width' : 'square-round square-round--min-width'}
          onClick={toggleClass} >Left</button>
       </li>
       <li>
          <button type="button" className={!isActive ? 'square-round square-round--active square-round--min-width' : 'square-round square-round--min-width'}
          onClick={toggleClass} >Right</button>
       </li>
     </ul>

我现在将其用作占位符,但稍后我必须调整代码以与后端一起使用,将用户选择(左或右)作为布尔值发送。我在下面添加后端代码,如果有人知道如何将所有内容放在一起,我将不胜感激。

const inoAPI = new konfiguratorreact.client.api.InoAPI();

Getters:
inoAPI.getSestav().isOdpiranjeLevo(); // boolean
inoAPI.getSestav().isOdpiranjeDesno(); // boolean

Setters:
inoAPI.getSestav().setOdpiranjeDesno(callback(success, error)))
inoAPI.getSestav().setOdpiranjeLevo(callback(success, error)))


您目前没有任何方法可以跟踪点击了哪个按钮。像这样的东西应该有用。

const ToggleComponent = ({ onToggle }) => {
  const [isActive, setActive] = useState(false);

  const toggleClass = (isLeft) => {
    onToggle(isLeft);

    if (isLeft)
      setActive(true);
    else
      setActive(false);
  };

 <ul class="buttons-in-line no-bullets flex-line">
   <li>
      <button type="button" className={isActive ? 'square-round square-round--active square-round--min-width' : 'square-round square-round--min-width'}
      onClick={() => toggleClass(true)} >Left</button>
   </li>
   <li>
      <button type="button" className={!isActive ? 'square-round square-round--active square-round--min-width' : 'square-round square-round--min-width'}
      onClick={() => toggleClass(false)} >Right</button>
   </li>
 </ul>
}

父组件

const ParentComponent = () => {
  [isActive, setIsActive] = useState(false);

  const handleToggle = (isActive) => {
    setActive(isActive);
  }

  return (
    <ToggleComponent onToggle={handleToggle} />
  );
}