Получите значение Int из Signal Int

Я сталкиваюсь с проблемой при принятии Int ценность из Window.dimensionsВернусь Вал - 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

1 ответ

Решение

Window.dimensions это Signal (Int, Int), Нанесение на карту с помощью fst или же snd даст вам Signal Int который вы не можете просто получить "значение из".

Ваш view не должен иметь Signal в этом вообще. Это должно просто принять некоторое состояние и вернуть некоторые Html, Если вы хотите сделать container это те же размеры, что и экран, лучше иметь view Функция принимает ширину / высоту, а затем сопоставить вашу функцию просмотра на Window.dimensions, Вы можете использовать это в качестве примера.

Другие вопросы по тегам