我对Javascript和React还是很陌生,所以请多多包涵。我的应用程序中有一个组件,该组件需要花费用户一定的时间,但是现在我想根据用户的输入来计算该用户每天的价格。我认为这可能是使用if循环的最简单方法,但是这样做有些不妥,而且我有些困惑。
我的尝试总体上还可以,还是需要一个单独的函数才能执行我想做的事情?
onConfirm(hour, minute) {
this.setState({ time: `Dauer: ${hour}:${minute}` });
this.setState(if((hour) < 4){return price = `Preis: (${hour}* 1.5) €';}
else {return price= 'Preis: 5.50 €';} );
this.TimePicker.close();
}
在对象文字中,您不能使用语句,只能使用表达式。 if
是一个语句。
如果要在表达式中执行该逻辑运算,请使用条件运算符(? :
),如下所示:
onConfirm(hour, minute) {
this.setState({
time: `Dauer: ${hour}:${minute}`,
price: hour < 4 ? `Preis: (${hour}* 1.5) €` : 'Preis: 5.50 €'
});
this.TimePicker.close();
}
上面的条件运算符表达式是:
hour < 4 ? `Preis: (${hour}* 1.5) €` : 'Preis: 5.50 €'
这是一个三元运算符(一个接受三个操作数的运算符:]
hour < 4
)`Preis: (${hour}* 1.5) €`
)'Preis: 5.50 €'
)还请注意,您在模板文字上使用了'
作为结束符(需要反引号。)>
¹“真实”和“虚假”-JavaScript隐式转换(或强制)值。当您在if
或条件运算符中使用值作为测试时,JavaScript会将您提供的值转换为布尔值(true
或false
)。转换为true
的值称为“真实”值,转换为false
的值称为“虚假”。伪造的值是NaN
,null
,undefined
,0
,""
,当然还有false
(在浏览器中,document.all
也是伪造的,因为我在我的书中解释了各种原因)。所有其他值都是真实的。