首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >限制输入数量

限制输入数量
EN

Stack Overflow用户
提问于 2018-10-21 23:25:44
回答 1查看 97关注 0票数 1

我在试着做一个反应计算器。这已经基本完成了,但我有一个问题我不知道如何纠正:我不想让用户输入以多个"0“开头的表达式,而像"01”这样的表达式应该被替换为"1“。我考虑过使用字符串方法来限制它,但它没有任何动摇。编辑:我知道为什么我的解决方案不起作用(输入永远不会有超过一个零),但我不知道任何其他方法来解决它。

代码语言:javascript
复制
class Calculator extends Component {
constructor(props) {
    super(props);
    this.state = { value: "" };
    this.handleClick = this.handleClick.bind(this);
}
handleClick(evt) {
    const id = evt.target.id;
    const result = evt.target.value;
    if (id === "clear") {
    this.setState({ value: 0 });
    } else if (id === "equals") {
    this.setState({ value: math.eval(this.state.value) });
    } else {
    result.toString().includes("00");
    this.setState({ value: this.state.value + result.replace("00", "0") });
    console.log(this.state.value);
    }
}

render() {
    return (
    <div id="container">
        <Display value={this.state.value} />
        <Button onClick={this.handleClick} id="zero" value={"0"} />
        <Button onClick={this.handleClick} id="one" value={"1"} />
        <Button onClick={this.handleClick} id="two" value={"2"} />
        <Button onClick={this.handleClick} id="three" value={"3"} />
        <Button onClick={this.handleClick} id="four" value={"4"} />
        <Button onClick={this.handleClick} id="five" value={"5"} />
        <Button onClick={this.handleClick} id="six" value={"6"} />
        <Button onClick={this.handleClick} id="seven" value={"7"} />
        <Button onClick={this.handleClick} id="eight" value={"8"} />
        <Button onClick={this.handleClick} id="nine" value={"9"} />
        <Button onClick={this.handleClick} id="decimal" value={"."} />
        <Button onClick={this.handleClick} id="equals" value={"="} />
        <Button onClick={this.handleClick} id="clear" value={"clear"} />
        <Button onClick={this.handleClick} id="add" value={"+"} />
        <Button onClick={this.handleClick} id="subtract" value={"-"} />
        <Button onClick={this.handleClick} id="multiply" value={"*"} />
        <Button onClick={this.handleClick} id="divide" value={"/"} />
    </div>
    );
}
}
export default Calculator;
EN

回答 1

Stack Overflow用户

发布于 2018-10-21 23:36:21

您可以更改此行

代码语言:javascript
复制
this.setState({ value: this.state.value + result.replace("00", "0") });

到这个

代码语言:javascript
复制
let num = this.state.value + Number(result);
this.setState({ value: Number(num).toString()});

我想这会解决问题的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52916881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档