Избегать гнездовой котельной на Эльмише? - PullRequest
1 голос
/ 13 июня 2019

Предположим, у меня есть такие вложенные компоненты Elmish: A содержит B содержит C.

Тогда, если C имеет состояние и сообщения, они должны быть переданы от C до B, а затем к A.

Например, тип сообщения и модели для B может быть:

type Message = 
  | CMessage of C.Message
  | UpdateFoo of string

type Model = 
  {
    Foo : string
    C : C.Model
  }

Тогда update для B выполнит некоторую маршрутизацию:

let update message model = 
  match message with
  | CMessage m -> 
    {
      model with
        C = C.update m model.C 
    }
  | UpdateFoo foo -> { model with Foo = foo }

Затем то же самое должно быть сделано для A потребления B сообщений.

Это довольно многословно по сравнению с setState, например.

Какие существуют стратегии для управления этим на Эльмише?

...