2016-08-24 43 views
1

我已经写的CoffeeScript/CJSX,这是有效的语法:如果...那么JSX为Javascript

<div> 
    <input type={if @state.name == "Test" then "checkbox"}/> 
</div> 

我如何做同样普通的JavaScript?没有if...then条款,我不认为我可以像在咖啡中那样在线检查if检查吗?

回答

2

您还可以使用逻辑运算符:

<input type={(state.name == "Test" && "checkbox") || "text"}>

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators#Short-Circuit_Evaluation

+3

当然,你_can_做到这一点,但为什么你会吗?这与'?:'的行为也有细微的差别,如果你不小心,可能会导致潜伏的错误。 – JLRishe

+1

这是真的。我主要用它来渲染JSX中的元素。即'{state.isValid &&

有效!

}'。但我认为在这种情况下你是对的,三元论是正确的。 – inostia