从 Signal Int 中获取 Int 值

Get Int value out of Signal Int

我在从 Window.dimensions 的 return val 中提取 Int 值时遇到问题 - Signal Int.

view : Signal.Address Action -> Model -> Html
view address model =
  let wx = Signal.map fst Window.dimensions 
      wy = Signal.map snd Window.dimensions  
  in fromElement <| container wx wy middle <| toElement  100 100 <|
      div []
        [ button [ onClick address Decrement ] [text "-"]
        ]

此行,wx = Signal.map fst Window.dimensions 获取 window 容器 x 坐标抛出错误,

Type mismatch between the following types on line 30, column 31 to 33:
        Signal.Signal In
        Int
    It is related to the following expression:
        wx

Window.dimensions 是一个 Signal (Int, Int)。用 fstsnd 映射它会给你一个 Signal Int 你不能只得到 "the value out of".

你的 view 根本不应该有 Signal。它应该只输入一些状态和 return 一些 Html。如果你想制作一个与屏幕尺寸相同的 container,最好让你的 view 函数采用 width/height,然后将你的视图函数映射到 Window.dimensions。您可以使用 this 作为示例。