在JSX中嵌套If语句

时间:2020-09-28 07:11:51

标签: reactjs typescript

我是一个初学者。我正在尝试在JSX中嵌套两个if语句

<span id={x.componentName + '-' + x.sampleGroupIdentifier + '-value-id'}
className='value bold'>
{isModerationFactorAvailable ? {!isNullOrUndefined(x.tailedGradient) ? "value1":"value2"}
x.minMark + '-' + thresholdMaxMark + '*'
+ x.tailedGradient + ' ' + '+' + ' ' + x.tailedIntercept + ' '
+ thresholdMaxMark + '+' + ' ' + '*' + x.primaryGradient
+ ' ' + '+' + ' ' + ' ' + ' ' + x.primaryIntercept :
[
localeHelper.translate('gradeAward.reportSheet.inProgressMsg')
]
}</span>

我不断收到错误消息,我在做什么错了?

enter image description here

2 个答案:

答案 0 :(得分:1)

通过使用三元运算符,您必须为{else“分支提供:

对代码进行了一些重新格式化,因此您可以看到缺少的内容:

格式化使阅读和调试代码更加容易。三元通常采用以下格式:

isModerationFactorAvailable 
   ? !isNullOrUndefined(x.tailedGradient) 
      ? "value1"
      : "value2"
   : else branch

答案 1 :(得分:0)

除了有效的注释/答案外,我还会添加一个建议-不要在标记中放入大量的if / else /三元运算符。您正在增加这样的错误变化,并使您的代码更难以理解。您可以使用提取变量提取函数重构方法来简化您(和您的队友)的生活。这样的事情(我已经删除了一些代码,不确定是什么完整的逻辑):

from pyscipopt import Model

model = Model()

model.readProblem('filename')

model.optimize()