繁体   English   中英

我试图在 React-native 中设置一个 if 语句,但它无法正常工作

[英]I'm trying to set up an if statement in React-native, but it wont work properly

我有一个 function if 语句设置来检查一个用户输入的数字是否大于另一个用户输入的数字,然后从较小的数字中减去较大的数字以创建问题的答案。 但是每当我运行代码时,有时它会正常工作,但通常情况下,它只会将 select 作为第一个数字作为更大的数字。

subtractSmallerNumber = () => {
        if (this.state.num1 > this.state.num2) {
            this.setState({ 
                num3: (this.state.num1 - this.state.num2),
                message: 'num1 is bigger',
            })
        } else {
            this.setState({ 
                num3: (this.state.num2 - this.state.num1),
                message: 'num2 is bigger',
            })
        }
    }

我尝试重写代码,但我不确定这是否是语法错误。 我不太确定该怎么做,因为我刚开始使用 reatc antive,而且我还不太了解,但我不确定要在网上查找什么。

如果错误可能发生在您提供的 function 中,那么查看完整代码将是有益的。 另外默认的 state 值是多少(如果有的话)?

我会冒险猜测您的数字可能被评估为字符串,因此可以将其转换为Number 您提供的代码也可以使用三元运算符在不使用 if/else 语句的情况下进行清理,因此您的 function 仅依赖于 1 个 useState,如下所示:

subtractSmallerNumber = () => {
  const { num1, num2 } = this.state;
  
  const isBigger = Number(num1) > Number(num2);
  
  this.setState({
    num3: isBigger ? Number(num1) - Number(num2) : Number(num2) - Number(num1),
    message: `${isBigger ? 'num1' : 'num2'} is bigger`,
  });
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM