我想对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
});
答案 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.