我一直在努力让这些领域发挥作用,但一直失败。我也一直在尝试寻找示例,但我能找到的唯一示例是使用 Elm 0.14,它使用 Elm 0.13 中不可用的新 Channel API。
所以我从目录中提供的示例开始
import Graphics.Input.Field (..)
import Graphics.Input (..)
name : Input Content
name = input noContent
nameField : Signal Element
nameField = field defaultStyle name.handle identity "Name" <~ name.signal
为了使用我尝试过的领域
main : Signal Element
main = Signal.lift2 display Window.dimensions gameState
display : (Int,Int) -> GameState -> Element
display (w,h) g =
container w h middle <|
collage gameWidth gameHeight
(if | g.state == Menu ->
[ rect gameWidth gameHeight
|> filled black
, toForm nameField
, plainText "*The name entered in the nameField*"
]
| otherwise -> []
)
但我不断收到以下错误
Expected Type: Signal.Signal Graphics.Element.Element
Actual Type: Graphics.Element.Element
为什么元素不再是信号了......函数定义明确指出它应该输出信号,对吗?现在我将如何输入一个名称,然后我就可以在变量中使用它了?