首页 > 解决方案 > 如何在 Elmish.WPF 中完成子/子模型到父/主模型的消息传递?

问题描述

(新手问题)。

在 Elmish.WPF 中,我有一个父模块 App,它包含一个子模块 FinderLastName:

module App =

    type Model =
        { 
            FinderLastName:  FinderLastName.Model      
        }

    type Msg =
        | FinderLastNameMsg  of FinderLastName.Msg
       

    let update msg m =
        match msg with
        | FinderLastNameMsg msg ->
            { m with FinderLastName  = FinderLastName.update msg m.FinderLastName}
       
    let bindings () : Binding<Model, Msg> list = [
        "FinderLastName" |> Binding.subModel(
          (fun m -> m.FinderLastName),
          snd,
          FinderLastNameMsg,
          FinderLastName.bindings)
     ]

子模型 FinderLastName 接收来自 UI 的文本输入,我需要将其传输到主 App 模块。

假设子模型 FinderLastName 具有模型、消息和更新的典型 Elmish.WPF 结构,我如何将文本输入从子模型/子模型传输到父模型/主模型?

(我为 Elm-spa 找到了一个很好的讨论,但是如何在 Elmish.WPF 中使用它?https: //discourse.elm-lang.org/t/modifying-parent-state-from-child-page- in-an-elm-spa-example-like-architecture/2437 )

任何想法将不胜感激。

TIA

找到了!请参阅非常好的博客: https ://medium.com/@MangelMaxime/my-tips-for-working-with-elmish-ab8d193d52fd

大概3/4的路下来,让孩子和家长交流

附录:有关 Elmish 使用的事件循环的详细说明,请参阅:https ://elmish.github.io/elmish/

标签: f#elmishelmish-wpf

解决方案


OP在此评论中分享了这个 Elm 讨论。正如我在此评论中所说,我喜欢那里提到的翻译模式。我计划很快在 Elmish.WPF 中实现它。


推荐阅读