Hello, The error is saying that your view is producing messages that are functions. This is because your `onClick` is using `UpdateModel`, but `UpdateModel` itself is not a message: `UpdateModel` needs a String value to become a Msg.
Possible fixes would be: 1) Change UpdateModel to not take any parameters: type Msg = UpdateModel 2) Pass a string to UpdateModel in your onClick: button [ onClick (UpdateModel "ValueToSend") ] [ text "Ajouter" ] On Thu, Oct 6, 2016 at 4:50 AM, Did <[email protected]> wrote: > Hi there, > > I'm pretty new to elm and I'm facing an issue I can't resolve by myself... > > I would like to display a text entered in a textbox by clicking on a > button. But elm detects an error with the definition of view. It says : > > --------- > > Detected errors in 1 module. > > > -- TYPE MISMATCH ------------------------------ > --------------------------------- > > The type annotation for `view` does not match its definition. > > 26| view: String -> Html a > ^^^^^^^^^^^^^^^^ > The type annotation is saying: > > String -> Html a > > But I am inferring that the definition has this type: > > String -> Html (String -> Msg) > > Hint: A type annotation is too generic. You can probably just switch to > the type > I inferred. These issues can be subtle though, so read more about it. > <https://github.com/elm-lang/elm-compiler/blob/0.17.0/ > hints/type-annotations.md> > > ----------- > > I really don't know what to do. If you can please explain how to resolve > this, because I can't find anything that helps... Thanks for your time! > > Here is the code I wrote in http://elm-lang.org/try : > > import Html exposing (..) > import Html.App as App > import Html.Attributes exposing (..) > import Html.Events exposing (..) > > main = > App.beginnerProgram { > model = init "", > update = update, > view = view > } > > init : String -> String > init str = > str > > type Msg = UpdateModel String > > update: Msg -> String -> String > update action model = > case action of > UpdateModel newModel -> > newModel > > view: String -> Html a > view model = > div[] > [ > input[type' "text", placeholder "Please enter a name..."][] > ,button [onClick UpdateModel][text "Ajouter"] > ,div[][text model] > ] > > -- > You received this message because you are subscribed to the Google Groups > "Elm Discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Elm Discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
