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

如何将React类组件转换为函数组件并解决页面不更新问题

转换后的React函数组件
import React, { useState } from 'react';  

const Home = () => {
  const [tabType, setTabType] = useState('none');

  const toggleMe = (value) => {
    setTabType(value);
  };
  
  return ( 
    <div className='home_css'>
      <div>
        {tabType === 'none' && (
          <div>
            <button className='button_css' onClick={() => toggleMe('general')}>General</button>
            <button className='button_css' onClick={() => toggleMe('army')}>Army</button>
            <button className='button_css' onClick={() => toggleMe('police')}>Police</button>
            <button className='button_css' onClick={() => toggleMe('psi')}>PSI</button>
          </div>
        )}

        {tabType === 'general' && (
          <div className='card'>
            I am General division  
            <button onClick={() => toggleMe('none')}>Close</button>
          </div>
        )}
        {tabType === 'army' && (
          <div className='card'>
            I am Army division
            <button onClick={() => toggleMe('none')}>Close</button>
          </div>
        )}
        {tabType === 'police' && (
          <div className='card'>
            I am Police division
            <button onClick={() => toggleMe('none')}>Close</button>
          </div>
        )}
        {tabType === 'psi' && (
          <div className='card'>
            I am PSI division
            <button onClick={() => toggleMe('none')}>Close</button>
          </div>
        )}
      </div>
    </div>
  );
};  

export default Home;

关键转换说明

  • 用箭头函数定义函数组件替代类组件
  • 使用useState Hook管理状态,替代类组件的state和setState方法,初始值保持'none'
  • 移除所有this引用,直接调用状态更新函数setTabType
  • 保留原有的条件渲染逻辑和事件绑定逻辑,确保功能与原组件完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:55:36