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

如何通过点击事件切换3种状态修改多个React组件props与显隐

实现方案

你要的3种状态循环切换不需要在触发点击事件时传入固定值,直接在状态切换逻辑里按当前状态匹配下一个状态即可,完整实现步骤如下:

1. 状态循环逻辑实现

首先修改handleChange函数,用switch匹配当前状态返回下一个状态,不需要接收传参:

// 原有状态声明不变
const [change, setChange] = useState("Pending");

const handleChange = () => {
  switch(change) {
    case "Pending":
      setChange("hello");
      break;
    case "hello":
      setChange("cancel");
      break;
    case "cancel":
      // 可根据需求调整,这里设置为循环切回初始状态,也可以停在cancel状态
      setChange("Pending");
      break;
    default:
      setChange("Pending");
  }
}

对应修改按钮的点击事件绑定,不需要传入固定值,同步实现按钮文本动态切换:

<Button variant="contained" onClick={handleChange}>
  {change === "Pending" ? "切换到hello" : change === "hello" ? "切换到cancel" : "切换到Pending"}
</Button>

2. Chip组件属性动态绑定

直接根据当前状态匹配Chip的文本和颜色即可:

<Chip
  label={change}
  // 颜色可根据实际需求自定义调整
  color={change === "Pending" ? "default" : change === "hello" ? "primary" : "error"}
/>

3. 第三个按钮隐藏逻辑

用条件渲染实现,状态为cancel时不渲染按钮:

{/* 只有状态不是cancel时才显示第三个按钮 */}
{change !== "cancel" && <Button>第三个按钮</Button>}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:18:00