You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React MUI中ToggleButtonGroup与Collapse联动隐藏失效问题求助

问题分析与解决方案

嘿,我一眼就发现问题所在啦!你的ToggleButton上的value用了字符串类型的"true"和"false",但状态showBox是布尔类型的true/false,类型不匹配导致ToggleButtonGroup没法正确识别选中状态,所以点击Hide选项时没法触发Collapse的隐藏效果。

具体修改点:

  • 把<ToggleButton value="true">改成<ToggleButton value={true}>,对应的Hide按钮改成value={false},让按钮值和状态的类型保持一致
  • 补充处理onChange回调中可能出现的null值(在exclusive模式下,点击已选中的按钮会返回null),避免状态异常

修改后的完整代码:

import React from "react";
import ToggleButton from "@material-ui/lab/ToggleButton";
import ToggleButtonGroup from "@material-ui/lab/ToggleButtonGroup";
import Collapse from "@material-ui/core/Collapse";

export default function ToggleButtons() {
  const [showBox, setShowBox] = React.useState(false);

  return (
    <>
      <ToggleButtonGroup
        value={showBox}
        exclusive
        onChange={(_, value: boolean | null) => {
          // 处理value为null的情况,确保状态始终是布尔值
          setShowBox(value ?? false);
        }}
      >
        <ToggleButton value={true}>Show</ToggleButton>
        <ToggleButton value={false}>Hide</ToggleButton>
      </ToggleButtonGroup>
      <Collapse in={showBox}>Box is shown</Collapse>
    </>
  );
}

内容的提问来源于stack exchange,提问作者zXynK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:23:45