Как осуществляется обмен сообщениями дочерней/подмодели с родительской/основной моделью в 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 получает текстовый ввод из пользовательского интерфейса, который мне нужно передать в основной модуль приложения.

Предполагая, что подмодель FinderLastName имеет типичную для Elmish.WPF структуру Model, Msg и update, как мне передать ввод текста из дочерней/подмодели в родительскую/основную модель?

(Я нашел хорошее обсуждение этого для Elm-spa, но как это будет использоваться в Elmish.WPF? https://discourse.elm-lang.org/t/modifying-parent-state-from-child-page-in-an-elm-spa-example-like-architecture/2437)

Любые идеи будут высоко оценены.

ТИА

Нашел! Пожалуйста, посмотрите действительно хороший блог по адресу: https://medium.com/@MangelMaxime/my-tips-for-working-with-elmish-ab8d193d52fd

Примерно 3/4 пути вниз. Заставьте ребенка общаться с родителем

Приложение: хорошее объяснение циклов событий, используемых Elmish, см.: https://elmish.github.io/elmish/


person Alan Wayne    schedule 25.11.2020    source источник
comment
У нас с ОП аналогичное обсуждение в этой проблемы (начиная с цитаты в этом комментарии).   -  person Tyson Williams    schedule 26.11.2020


Ответы (2)


OP поделился ссылкой это обсуждение Elm в этот комментарий . Как я уже говорил в этом комментарии, мне нравится шаблон переводчика что там упоминалось. Я планирую реализовать его в Elmish.WPF в ближайшее время.

person Tyson Williams    schedule 26.11.2020
comment
см. Заставьте ребенка общаться с родителем на medium.com /@MangelMaxime/ - person Alan Wayne; 26.11.2020
comment
Ага. Я прочитал это и ответил в связанной беседе. - person Tyson Williams; 26.11.2020

В репозитории Elmish.WPF есть несколько хороших примеров проектов, демонстрирующих подобные вещи. Посмотрите на проекты с SubModel в названии.

Я предлагаю вам клонировать репозиторий и открыть его в вашей среде IDE, чтобы получить полное определение типа. Вы также можете запустить каждый образец проекта. Лично я считаю, что это действительно хорошая форма документации.

person TheQuickBrownFox    schedule 25.11.2020
comment
Я изучал этот код. Я не вижу, куда он отправляет какую-либо информацию топ-модели. Оказывается, каждая подмодель справляется сама с собой?? Спасибо. - person Alan Wayne; 25.11.2020
comment
Здесь один из сопровождающих Elmish.WPF. @AlanWayne прав. Ни в одной из выборок не используется общение ребенка с родителем. - person Tyson Williams; 26.11.2020
comment
@AlanWayne А, я просто надеялся, что он будет содержать ваш ответ, но я оставлю это здесь, потому что не думаю, что всем очевидно, что образцы в репо являются отличным ресурсом. - person TheQuickBrownFox; 26.11.2020