反应状态下的操作

时间:2018-12-17 17:10:34

标签: javascript reactjs

我想对React状态进行数学运算,但结果返回NaN。

 var b= Number(this.state.price) /  Number(this.state.BTCvalue);
 console.log(this.state.price)  //returns right price
 console.log(this.state.BTCvalue) //returns right number
 console.log(b) // returns NaN
  this.setState({
    res: b
  });

2 个答案:

答案 0 :(得分:1)

创建局部变量并从状态分配值。

let {price, BTCvalue} = this.state;

检查变量是否未定义和编号。 您可以使用 !undefined!isNaN进行检查。 对它进行任何数学运算。

var res = price/BTCvalue;

然后设置状态

this.setState({ res: res });

确保您的值是数字状态。

答案 1 :(得分:0)

const { price, BTCvalue } = this.state;
const res = Number(`${price}`.replace(/,/g, '')) / Number(`${BTCvalue }`.replace(/,/g, '')); // remove "," before doing division
!isNaN(res) && this.setState({
    res
}); // check if result is number before setting state.