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

React中如何创建按钮点击触发的组件切换函数?

React 组件切换按钮实现修正

你的代码里有几个关键问题需要修正,才能实现点击按钮切换到下一个组件的功能:

  • 状态更新方式错误:setEtapa是React的状态更新函数,直接调用它并传入新值即可,不需要.onClick。另外要判断当前阶段,避免超过最后一个阶段(4)。
  • 渲染函数未执行:renderizarEtapa是一个函数,需要调用它才能返回对应组件,所以要写成{renderizarEtapa()}而不是{renderizarEtapa}。
  • 按钮未绑定点击事件:需要给按钮添加onClick属性,绑定到切换阶段的函数,同时在最后一个阶段隐藏按钮。

修正后的完整代码:

import React, { useState } from "react"
import Etapa1 from "./components/Etapa1";
import Etapa2 from "./components/Etapa2";
import Etapa3 from "./components/Etapa3";
import Final from "./components/Final";
import "./styles.css";

export default function App() {
  const [etapa, setEtapa] = useState(1)

  const irParaProximaEtapa = () => {
    // 只在当前阶段小于4时更新状态
    if (etapa < 4) {
      setEtapa(etapa + 1)
    }
  }

  const renderizarEtapa = () => {
    switch (etapa) {
      case 1:
        return <Etapa1 />;
      case 2:
        return <Etapa2 />;
      case 3:
        return <Etapa3 />;
      case 4:
        return <Final />
      default:
        return null;
    }
  }

  return (
    <div className="App">
      {renderizarEtapa()}
      {/* 只有当前阶段不是最后一个时显示按钮 */}
      {etapa < 4 && <button onClick={irParaProximaEtapa}>Próxima etapa</button>}
    </div>
  );
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 00:47:23