Elm:如何将Html-FooMsg转换为Html-Msg

Elm:如何将Html-FooMsg转换为Html-Msg,elm,Elm,我是埃尔姆的新手。我有一个网站有两个页面:主页和注册 Home有自己的视图,Signup有自己的视图,但它们都返回Html Msg。我想更改它,以便Home返回HTMLHomeMsg,而Signup返回HTMLSignupMsg 编写这些视图函数当然很容易,但我认为我的顶级视图函数需要将结果转换为Html Msg 这是Msg类型 type Msg = Home HomeMsg | Signup SignupMsg | OnLocationChange Location 我想我需要

我是埃尔姆的新手。我有一个网站有两个页面:主页和注册

Home有自己的视图,Signup有自己的视图,但它们都返回
Html Msg
。我想更改它,以便Home返回
HTMLHomeMsg
,而Signup返回
HTMLSignupMsg

编写这些视图函数当然很容易,但我认为我的顶级视图函数需要将结果转换为
Html Msg

这是Msg类型

type Msg 
  = Home HomeMsg
  | Signup SignupMsg
  | OnLocationChange Location
我想我需要某种
map
函数来完成这样的操作

view : Model -> Html Msg 
view model =
    case model.route of
        Model.HomeRoute ->
            map Home (homeView model)

        Model.SignupRoute ->
            map Signup (signupView model)

        Model.NotFoundRoute ->
            notFoundView

是的,有一个
map
功能。它属于
Html
模块

您的代码变成:

view : Model -> Html Msg 
view model =
    case model.route of
        Model.HomeRoute ->
            Html.map Home (homeView model)

        Model.SignupRoute ->
            Html.map Signup (signupView model)

        Model.NotFoundRoute ->
            notFoundView