假设我有这样的嵌套 Elmish 组件:A
contains B
contains C
。
然后如果C
有状态和消息,这些必须从 to 传递C
到B
然后 to A
。
例如,消息和模型类型B
可能是:
type Message =
| CMessage of C.Message
| UpdateFoo of string
type Model =
{
Foo : string
C : C.Model
}
然后update
forB
会做一些路由:
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
例如,与 相比,这非常冗长。
在 Elmish 中管理此问题的一些策略是什么?