Elm:如何将Html-FooMsg转换为Html-Msg
我是埃尔姆的新手。我有一个网站有两个页面:主页和注册 Home有自己的视图,Signup有自己的视图,但它们都返回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 我想我需要
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