首页 > 解决方案 > reactjs中两个数字相加

问题描述

我有两个输入框将用户输入作为数字并希望在 span 中显示他们的添加结果,但它们没有被添加,它们被附加。

          This is my reactjs that i have tried:

              class EssayForm extends React.Component {
                 constructor(props) {
               super(props);
                          this.state = {
                value:'',
                 fno:'',
               sno:'',
         };
            this.handleSquareChange = this.handleSquareChange.bind(this);

           this.handleTextChange = this.handleTextChange.bind(this);

         this.handleTextLastChange = this.handleTextLastChange.bind(this);

              this.handleSubmit = this.handleSubmit.bind(this);
              }

                handleSquareChange(event) {
                this.setState({value: event.target.value});
                  }

               handleTextChange(event) {
                this.setState({fno: event.target.value});
               }

            handleTextLastChange(event) {
            this.setState({sno: event.target.value});
                }

           handleSubmit(event) {
           event.preventDefault();
               alert("welcome");
           }

                      render() { 
              return (
               <div className="example">
                   <form onSubmit={this.handleSubmit}>
                   <span>Square of:</span>
                   <input type="text" value={this.state.value} onChange= 
             {this.handleSquareChange} />
                <span>First no:</span>
              <input type="text" value={this.state.fno} onChange= 
       {this.handleTextChange} />
         <span>second no:</span>
          <input type="text" value={this.state.sno} onChange= 
          {this.handleTextLastChange} />
      <input type="submit" value="Submit" onClick={this.handleSubmit} />
               </form>
            <div className="preview">
                <h1>Square of no is</h1>
              <div>{this.state.value * this.state.value}</div>
                </div>

             <div className="preview">
           <h1>Result of no is</h1>
            <div>{this.state.fno + this.state.sno}</div>
                      </div>
                </div>
              );
            }
       } 

           ReactDOM.render(<EssayForm />, document.getElementById('app'));

我已经用一个输入框来计算一个数字,它可以正常工作但不能加法。任何人都可以让我知道我错在哪里。我是 reactjs 的新手。

标签: javascripthtmlreactjs

解决方案


在您的州,您已将 sno 和 fno 定义为字符串。因此,当您为它们设置任何内容时,它们会将值设为字符串。您可以做的是通过将默认值 0 设置为 sno 和 fno 归档为数字。或者,您可以在添加之前将它们类型转换为数字。比如,(Number)this.state.fno + (Number)this.state.sno。


推荐阅读