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

如何在React中比较两个数值大小并通过state存储结果

问题修复方案

你的代码存在多处语法错误和逻辑疏漏,以下是修复后的可运行代码:

import React from 'react';
class Greatersum extends React.Component
{
  constructor(props)
  {
    super(props);
    this.state = {
      a: '',
      b: '',
      c: ''
    }
    this.addFormData = this.addFormData.bind(this);
  }
  addFormData() {
    // 先将输入的字符串转为数字,避免字符串比较的逻辑错误
    const numA = Number(this.state.a)
    const numB = Number(this.state.b)
    // 两种写法都可以,选一种即可
    // 写法1:三目运算符实现
    this.setState({c: numA > numB ? numA : numB})
    // 写法2:调用Math.max方法更简洁
    // this.setState({c: Math.max(numA, numB)})
  }
  render()
  {
    return(
      <div>
        <input type="text" placeholder="输入第一个数字" onChange={e=> this.setState({a:e.target.value})}/><br/><br/>
        <input type="text" placeholder="输入第二个数字" onChange={e=> this.setState({b:e.target.value})}/><br/><br/>
        <input type="text" value={this.state.c} readOnly/><br/><br/>
        <button type="button" onClick={this.addFormData}>Click Me</button>
      </div>
    )
  };
}
export default Greatersum;

主要修改点说明

  • 修正了类名定义的语法错误,删除了原代码中多余的符号和拼写错误
  • 补充了输入值转数字的逻辑:输入框默认获取的value是字符串类型,直接比较会出现'10' < '2'的错误结果,转为数字后比较逻辑才正确
  • 修复了三目运算符的语法错误,正确的三目运算符格式为判断条件 ? 条件成立返回值 : 条件不成立返回值
  • 给展示结果的输入框加了readOnly属性避免用户误修改,按钮修改为type="button"避免触发表单默认提交行为
  • 新增了输入框占位提示文字,优化使用体验

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:45:03