IntelliJ使用带有布尔属性的scalatags显示错误

时间:2018-09-06 11:46:42

标签: scala dom scala.js scalatags

现在有人可以解释为什么即使sbt可以编译并且一切正常,IntelliJ还是在这里显示错误:

enter image description here

*编辑:“ stopEnabled”是布尔值。

据我了解,要在这里不显示错误,我必须像这样写点东西:

button(if(!stopEnabled) disabled else JsDom.Modifier.*nothing*)

有什么办法可以很好地解决这个问题?

2 个答案:

答案 0 :(得分:2)

disabled是一件令人讨厌的事-IMO,他们从一开始就认为它是错误的,而且从来没有做得更好。

副手,我猜想Scalatags的frag()构造函数可能是最简单的解决方案:采用其参数并将它们包装为单个碎片。我相信即使没有参数也可以。所以我认为您可以做到:

div(
  if (stopEnabled)
    frag()
  else
    disabled := "disabled"
)

答案 1 :(得分:1)

您可以按以下顺序进行操作:

import scalatags.JsDom.all._

val stopEnabled = true

val modifiers = if(stopEnabled) Nil else Seq(disabled)

div(
  button(modifiers)
)