elm-tutorial icon indicating copy to clipboard operation
elm-tutorial copied to clipboard

Routing chapter does not compile

Open supermacro opened this issue 6 years ago • 2 comments

In the View section,

the function page causes a type mismatch

page : Model -> Html Msg
page model =
    case model.route of
        Models.PlayersRoute ->
            Players.List.view model.players

        Models.PlayerRoute id ->
            playerEditPage model id

        Models.NotFoundRoute ->
            notFoundView

where model.players is webData (List Player)

but Players.List.view expects List Player as its argument.

supermacro avatar Feb 24 '18 18:02 supermacro

My Solution was the following:

page : Model -> Html Msg
page model =
  case model.route of
    Models.PlayersRoute ->
      playersViewPage model.players

    Models.PlayerRoute playerId ->
      playerEditPage model playerId

    Models.NotFoundRoute ->
      notFoundView



playersViewPage : WebData (List Player) -> Html Msg
playersViewPage playersResponse =
  case playersResponse of
    RemoteData.NotAsked ->
      text ""

    RemoteData.Loading ->
      text "Loading ..."

    RemoteData.Success playerList ->
      Players.List.view playerList

    RemoteData.Failure err ->
      text (toString err)

supermacro avatar Feb 24 '18 19:02 supermacro

In https://www.elm-tutorial.org/en/06-fetching-resources/06-views.html the List.view function was changed to handle this. Did you maybe miss this step?

sporto avatar Mar 01 '18 06:03 sporto