onInput 参数失败(来自 Elm n00b)
onInput argument failure (by Elm n00b)
我正在基于他们的 tutorial 试验 Elm,并且遇到了函数参数声明的问题。
基本上我只是在教程代码中提取了一个函数。没有函数声明它工作正常,但当我包含它时失败。
代码的本质是:
type Msg
= Name String
| Password String
view : Model -> Html Msg
view model =
div []
[ myInput "text" "Name" Name
]
myInput : String -> String -> Msg -> Html Msg
myInput type__ label handle =
input [ type_ type__, placeholder label, onInput Name ] []
错误信息是:
函数 myInput
的第三个参数导致不匹配。
47| myInput "text" "Name" 名称
函数 myInput
期望第三个参数为:
消息
但它是:
字符串 -> 消息
提示:看起来函数还需要 1 个参数。
理想情况下,我还希望 onInput 的参数是在 myInput 中声明的名为 "handle" 的参数。
myInput
的类型签名不正确。构造函数 Name
有一个参数,这意味着当用作函数时,它的签名是 (String -> Msg)
。这就是您应该用于 handle
参数注释的内容。
myInput : String -> String -> (String -> Msg) -> Html Msg
myInput type__ label handle =
input [ type_ type__, placeholder label, onInput handle ] []
我正在基于他们的 tutorial 试验 Elm,并且遇到了函数参数声明的问题。
基本上我只是在教程代码中提取了一个函数。没有函数声明它工作正常,但当我包含它时失败。
代码的本质是:
type Msg
= Name String
| Password String
view : Model -> Html Msg
view model =
div []
[ myInput "text" "Name" Name
]
myInput : String -> String -> Msg -> Html Msg
myInput type__ label handle =
input [ type_ type__, placeholder label, onInput Name ] []
错误信息是:
函数 myInput
的第三个参数导致不匹配。
47| myInput "text" "Name" 名称
函数 myInput
期望第三个参数为:
消息
但它是:
字符串 -> 消息
提示:看起来函数还需要 1 个参数。
理想情况下,我还希望 onInput 的参数是在 myInput 中声明的名为 "handle" 的参数。
myInput
的类型签名不正确。构造函数 Name
有一个参数,这意味着当用作函数时,它的签名是 (String -> Msg)
。这就是您应该用于 handle
参数注释的内容。
myInput : String -> String -> (String -> Msg) -> Html Msg
myInput type__ label handle =
input [ type_ type__, placeholder label, onInput handle ] []