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

React类组件实现提交输入文本按内容长度累加计数器的问题

React类组件功能实现调整方案

需要修改3处核心逻辑即可符合需求:

  • 补充state配置:新增value字段存储输入框的实时输入内容
  • 新增输入事件处理方法handleChange:同步用户输入内容到state,实现输入框受控
  • 调整提交点击逻辑:将原来每次累加1的逻辑,改为累加当前输入内容的长度,可选新增提交后清空输入框的优化

调整后的完整代码如下:

import React, { Component } from 'react'

export class TextInput extends Component {
  constructor(){
    super()
    this.state = {
      count: 0,
      value: ''
    }
    this.handleClick = this.handleClick.bind(this)
    this.handleChange = this.handleChange.bind(this)
  }

  handleChange(e){
    this.setState({
      value: e.target.value
    })
  }

  handleClick(){
    this.setState(prevState => {
      return {
        count: prevState.count + prevState.value.length,
        value: ''
      }
    })
  }

  render(){
    return(
      <div>
        <input 
          type="text" 
          value={this.state.value} 
          onChange={this.handleChange} 
          placeholder="请输入内容"
        />
        <button onClick={this.handleClick}>提交</button>
        <span>{this.state.count}</span>
      </div>
    )
  }
}
export default TextInput

可以根据实际需求调整计数器、输入框、按钮的排版顺序,当前代码已经完全符合输入内容长度累加的功能要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:09:02