Je ne parviens pas à déclencher un message de réponse lors de l'envoi d'un message initial.Impossible de déclencher le message de réponse lors de l'envoi du message initial
J'ai un bouton:
button
[ class "register"
, value "Create Account"
, onClick Submit
]
Je les messages suivants:
type Msg
= Submit
| Response (Result Http.Error JsonProfile)
Le gestionnaire de message qui est appelé via le bouton clic est le suivant:
update : Msg -> Form -> (Form, Cmd Msg)
update msg model =
case msg of
Submit ->
(model, runtime.tryRegister model Response)
...
Voici les autres gestionnaires de messages:
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)
Mon tryRegister mise en œuvre est la suivante:
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
Voici le code client au module d'orme décrit ci-dessus:
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)
Attente:
Je pense que quand je cliquez sur le bouton, la navigation a lieu. Cependant, rien ne se passe et je ne comprends pas pourquoi.
Le code source est here.
Je suis vraiment reconnaissant pour vos réponses détaillées. Comment puis-je redonner? –