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

IntelliJ shows error using scalatags with boolean attributes

现在有人知道为什么 IntelliJ 在这里显示错误,即使 sbt 编译并且一切正常:

*编辑:"stopEnabled" 是布尔值。

据我了解,为了不在此处显示错误,我必须这样写:

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

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

你可以用一个序列来做:

import scalatags.JsDom.all._

val stopEnabled = true

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

div(
  button(modifiers)
)

disabled 很麻烦 -- IMO,他们从一开始就把它指定错了,而且从来没有改进过。

顺便说一下,我猜想 Scalatags 的 frag() 构造函数可能是最简单的解决方案:它接受它的参数并将它们包装为一个片段。我相信即使没有参数也能工作。所以我认为你可以这样做:

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