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

问题描述 投票:1回答:2

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

enter image description here

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

据我了解,为了不在这里显示错误,我将不得不写这样的东西:

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

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

scala dom scala.js scalatags
2个回答
2
投票

disabled是一个令人讨厌的东西 - 国际海事组织,他们从一开始就指出它是错误的,并且从来没有让它变得更好。

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

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

1
投票

你可以用一个序列来做:

import scalatags.JsDom.all._

val stopEnabled = true

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

div(
  button(modifiers)
)
© www.soinside.com 2019 - 2024. All rights reserved.