5
elm-lang tutorialから単純なアプリケーションを修正して、最初にモデルを更新してから別の更新をトリガーしようとしています。Elm - MsgをCmd Msgに変更
update msg model =
case msg of
MorePlease ->
(model, getRandomGif model.topic)
NewGif (Ok newUrl) ->
({ model | gifUrl = newUrl }, Cmd.none)
NewGif (Err _) ->
(model, Cmd.none)
-- my addition
NewTopic newTopic ->
({ model | topic = newTopic}, MorePlease)
NewTopic支店ので、これは、コンパイラに失敗します。だから私のメッセージは、タイプCmdをメッセージする必要があります
The 3rd branch has this type:
({ gifUrl : String, topic : String }, Cmd Msg)
But the 4th is:
({ gifUrl : String, topic : String }, Msg)
。どのように私はCmdをメッセージの中に「私のメッセージを有効にすることができます
注:?私はこの変更を行うための簡単な方法がある認識が、私はもっと根本的
をありがとうございました。これは、問題を簡単に解決する方法です。私はまだ疑問に思う。「メッセージ」を「メッセージ・メッセージ」に「キャスト」する必要があるだろうか?そしてもし私がすればどうしますか? – steel
私の答えは、 –
@ChadGilbertの例で更新しました。新しい 'Msg'を起動して2番目の方法を推奨しない理由をもっと詳しく説明できますか? – DanEEStar