在JSX中的三元运算符内添加函数调用

时间:2017-06-10 10:50:29

标签: javascript reactjs ternary-operator jsx

我想在三元运算符条件内调用函数。 我的代码是这样的:

{snapshot.Bid[0].Price !== 'undefined'
                  ? `(${initialOrderInfo.snapshot.Bid[0].Price}`
                    {renderCurrencySymbol(
                      initialOrderInfo.instrumentInfo.currency
                    )}

但它显示了多个错误。任何想法我应该怎么做?

1 个答案:

答案 0 :(得分:3)

#1错误

您遗失:

// example
? `(${initialOrderInfo.snapshot.Bid[0].Price}`
                        : {renderCurrencySymbol(
  

条件? expr1:expr2

详情请阅读MDN

#2错误

关于用作第一个表达式的模板字符串

(${initialOrderInfo.snapshot.Bid[0].Price}

不正确的是(左括号,你没有关闭它。在这里使用括号是没有意义的。

您甚至不需要使用模板字符串。

有效代码是

initialOrderInfo.snapshot.Bid[0].Price 
//or 
`${initialOrderInfo.snapshot.Bid[0].Price}`

但在您的情况下更正JSX,假设renderCurrencySymbol()class method,则如下:

{snapshot.Bid[0].Price !== 'undefined'
                  ? initialOrderInfo.snapshot.Bid[0].Price
                    : this.renderCurrencySymbol(
                      initialOrderInfo.instrumentInfo.currency
                    )}