Предположим, у меня есть такие вложенные компоненты 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
, например.
Какие существуют стратегии для управления этим на Эльмише?