6

Cmd是否可以在 Elm中创建一个在完成时不发送消息的?

具体来说,我试图让一个元素抓住焦点(以编程方式),但我不需要知道结果:

Dom.focus "element-id"
    |> Task.attempt FocusReceived
...
FocusReceived result ->
    model ! []  -- result ignored

有没有办法让榆树“引擎”在此之后不发送消息Cmd

我知道我的代码 ( FocusReceived result -> model ! []) 是无操作的,但我希望根本不发送消息。

4

1 回答 1

6

不,Msg始终需要 a。在典型的 Elm 项目中,包含一个Msg不执行任何命名的类型构造函数是一种常见的习惯用法NoOp

type Msg
    = NoOp
    | ...

update函数执行FocusReceived您示例中的操作,即什么也不做。

case msg of
    NoOp ->
        model ! []
    ...
于 2018-01-21T13:44:49.053 回答