Ich richte einen super einfachen http
Aufruf an einen Endpunkt auf meinem Server, der eine JSON-Antwort zurückgibt - ein Objekt mit einer success
prop, die ist ein Boolescher Wert. Hier ist der relevante Code:Elm: Funktion `send` erwartet Http.Request String aber es ist Http.Request Bool
getData : Model -> Cmd Msg
getData { userId, data } =
let
url =
"/get-data?userId=" ++ userId ++ "&data=" ++ data
request =
Http.get url decodeGetData
in
Http.send GetDataResult request
decodeGetData : Decode.Decoder Bool
decodeGetData =
Decode.at [ "success" ] Decode.bool
ich die folgende Fehlermeldung vom Compiler bekommen:
Http.send GetDataResult request
^^^^^^^
Function `send` is expecting the 2nd argument to be:
Http.Request String
But it is:
Http.Request Bool
Was ist los hier los ist? Wie richte ich Http.send so ein, dass ein Bool anstelle einer Zeichenfolge erwartet wird? Ich weiß, dass das Basis-Setup meiner Anfrage korrekt ist, weil mein Code kompiliert, wenn ich die decodeGetData
Funktion zu ändern:
decodeGetData : Decode.Decoder String
decodeGetData =
Decode.at [ "success" ] Decode.string
In diesem Fall habe ich erfolgreich die HTTP-Anforderung machen, aber dann bekomme ich einen Fehler, da der Erfolg prop auf die Antwort ist ein Boolescher anstelle einer Zeichenfolge.
Irgendwelche Zeiger? Prost!
Ihre Fehlermeldung bezieht sich auf 'GrabCashResult', während das darüber liegende Code-Snippet 'GetDataResult' referenziert. Ist das beabsichtigt oder könnte das der Grund für den Kompilierungsfehler sein? –
Nein, das ist nur mein Fehler beim Kopieren einer älteren Version des Fehlers und einer neueren Version des Codes. Der Fehler ist immer noch vorhanden, wenn sie gleich sind. (Bearbeitete Frage, um sie gleich zu machen) – otajor
Gotcha. Können Sie auch die Definition von 'Msg' und/oder den' GetDataResult'-Konstruktor einbeziehen? Benötigt es ein Bool- oder String-Argument? –