2

(新手问题)。

在 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/

4

2 回答 2

3

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

于 2020-11-26T02:06:58.430 回答
1

Elmish.WPF存储库有几个很好的示例项目,其中演示了这类事情。查看名称中带有“SubModel”的项目。

我建议你克隆 repo 并在你的 IDE 中打开它以获得完整的类型推断。您还可以运行每个示例项目。我个人认为这是一种非常好的文档形式。

于 2020-11-25T11:34:20.347 回答