初期メッセージを送信するときに応答メッセージをトリガーできません。初期メッセージを送信するときに応答メッセージを起動できません。
私がボタンを持っている:
button
[ class "register"
, value "Create Account"
, onClick Submit
]
私は、次のメッセージがあります
type Msg
= Submit
| Response (Result Http.Error JsonProfile)
ボタンクリックで起動されたメッセージハンドラは以下の通りです:
update : Msg -> Form -> (Form, Cmd Msg)
update msg model =
case msg of
Submit ->
(model, runtime.tryRegister model Response)
...
ここです他のメッセージハンドラ:
update : Msg -> Form -> (Form, Cmd Msg)
update msg model =
case msg of
Submit ->
(model, runtime.tryRegister model Response)
Response (Ok json) ->
(model, Navigation.load <| "/#/portal/1")
Response (Err error) ->
(model, Cmd.none)
マイtryRegisterの実装は以下の通りです:
tryRegister : Form -> (Result Http.Error JsonProfile -> msg) -> Cmd msg
tryRegister form msg =
let
jsonProfile =
JsonProfile 1 form.firstName form.lastName form.email
newMsg v =
msg
in
Cmd.map (newMsg <| Result.Ok jsonProfile) Cmd.none
ここでは、上記示したニレモジュールへのクライアントコードです:
onRegistration : Registration.Msg -> Model -> (Model, Cmd Msg)
onRegistration subMsg model =
let
(form, _) =
Registration.update subMsg model.registration
in
case subMsg of
Registration.Submit ->
({ model | registration = form }, Cmd.none)
Registration.Response result ->
case result of
Result.Ok jsonProfile ->
let
newUser =
jsonProfileToProvider jsonProfile
newState =
{ model
| registration = form
, portal =
{ initPortal
| provider = newUser
, requested = Domain.EditProfile
, linksNavigation = False
, sourcesNavigation = False
}
}
in
(newState, Navigation.load <| "/#/portal/" ++ getId newUser.profile.id)
Result.Err _ ->
(model, Cmd.none)
期待:
私はときに私を期待ボタンをクリックすると、そのナビゲーションが行われます。 しかし、何も起こりません、なぜ私は理解していません。
ソースコードhereです。
私は本当にあなたの詳細な答えに感謝しています。どうやって返せますか? –