需要检查用户的出价是否高于当前出价/价格。目前,我回想起输入总是小于当前的出价/价格。测试变量是我从另一个组件传递过来的当前价格/出价。
proc
答案 0 :(得分:0)
setBid
不会立即求值,因此setBid(...) && doSomethingWith(price)
将使用旧值price
。价格更新后,您需要处理价格检查;即渲染组件时。也就是说,setBid
将更新状态,并在某些时候React将重新渲染您的组件。那时,无论需要了解价格还是测试的任何子组件,您都可以将两者进行比较并呈现适当的html。
此外,您使用了错误的运算符(&
而不是&&
),其结果是:
> 2 & true
0 // this is treated at "falsy" in javascript!!
因为true
(0b01
)和2
(0b10
)将按位&
到00
。
比较
> 2 && true
true
您也有错误的处理优先权,应将整个?:
表达式包装在括号中。
setBid(e.target.value) & (parseFloat(price) > parseFloat(test)
? console.log("greater")
: console.log("less than"))
说明:
> false && true ? 1 : 2
2
> false && (true ? 1 : 2)
false
但是,当您将price
与test
进行比较时,请解决此问题,其余都没有意义。