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

ReactJS类组件点击点赞按钮后计数数值不更新问题求助

问题原因

  • 状态更新方法调用错误:React类组件更新状态必须使用this.setState(),你写的this.state({likes: likes+1})是错误用法,this.state是存储状态的对象,不是更新函数。
  • 点击事件回调未执行:onClick={() => this.likes_count}的写法只是返回了函数引用,没有触发函数执行,自然不会走更新逻辑。
  • 冗余导入:你引入了仅函数组件可用的useState Hook,当前是类组件,这个导入完全无效可以删除。

修正后完整代码

import React from 'react';

class GiveLikes extends React.Component {
  // 初始化点赞数
  state = { likes: 0 };

  // 点赞计数逻辑
  likes_count = () => {
    // 推荐使用函数式更新,避免异步更新导致的状态不同步问题
    this.setState(prevState => ({
      likes: prevState.likes + 1
    }));
  }
    
  render() {
    return (
      <>
        <h2> {this.state.likes} </h2>
        <div className="buttons">
          <button 
            style={{
              fontSize: '60%',
              position: 'relative',
              top: '20vh',
              marginRight: '5px',
              backgroundColor: 'green',
              borderRadius: '8%',
              color: 'white',
            }}
            onClick={this.likes_count}
          >
            Likes
          </button>
        </div>  
      </>
    )
  }
}
  
export default GiveLikes;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:18:04