javascript - ReactJs 切换案例
问题描述
第 8 行未正常工作意味着我的代码未执行附加操作,其余所有操作均成功。任何人都可以向我解释更多关于它的信息,${a+b}
因为它只是连接两个数字。
1 import React, { Component } from 'react'
2 class State6 extends Component {
3 state = { msg: '' }
4 calculate(op) {
5 var a = this.refs.a.value;
6 var b = this.refs.b.value;
7 switch (op) {
8 case 'add':
9 this.setState({
10 msg: `${a + b}`
});
break;
case 'sub':
this.setState({ msg: a - b });
break;
case 'mul':
this.setState({ msg: a * b });
break;
case 'div':
this.setState({ msg: a / b });
break;
default:
this.setState({ msg: "WRONG INPUT" })
}
}
render() {
return <div>
<h2>Event Handing, Ex-08</h2>
Enter no1: <input type="number" ref="a" /> <br />
Enter no2: <input type="number" ref="b" /> <br />
<input type="button" value="ADDITION" onClick={() => this.calculate('add')} />
<input type="button" value="SUBTRACTION" onClick={() => this.calculate('sub')} />
<input type="button" value="MULTIPLICATION" onClick={() => this.calculate('mul')} />
<input type="button" value="DIVISION" onClick={() => this.calculate('div')} /> <hr />
{this.state.msg}
</div>
}
}
export default State6;
解决方案
我已经检查过并且工作正常,但如果您仍然遇到问题,我建议您使用parseFloat
以确保收到的输入是正确的数字,因此请替换以下行
var a = this.refs.a.value;
var b = this.refs.b.value;
和
let a = parseFloat(this.refs.a.value);
let b = parseFloat(this.refs.b.value);
推荐阅读
- python - 如何将多个字符串作为源代码运行?
- .net - 为 .Net 应用程序加载 VTK 程序集时出错
- node.js - Exceljs 单元格包含一个函数
- mybatis - 我可以在我的应用程序上覆盖 **Mapper.xml 吗?
- html - align-items:居中,带有标签和输入元素
- r - 使用带有 for 循环的 plot_ly 命令时出现问题
- xml - 将来自两个 XML 文件的信息与一个 XSL 结合起来
- python - 如何正确实现memoization?
- ios - 将字符串中的时间快速添加到日期对象中
- javascript - 移动设备上的 Google Maps api 模糊图块