【问题标题】:onInput argument failure (by Elm n00b)onInput 参数失败(由 Elm n00b 提供)
【发布时间】:2017-09-25 20:39:26
【问题描述】:

我正在根据他们的 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 期望第三个参数是:

消息

但它是:

字符串 -> 消息

提示:看起来一个函数还需要 1 个参数。


理想情况下,我还希望 onInput 的参数是名为“handle”的参数,在 myInput 中声明。

【问题讨论】:

    标签: elm


    【解决方案1】:

    myInput 的类型签名不正确。构造函数Name 有一个参数,这意味着当用作函数时,它的签名是(String -> Msg)。这就是handle 参数的注释应该使用的内容。

    myInput : String -> String -> (String -> Msg) -> Html Msg
    myInput type__ label handle =
        input [ type_ type__, placeholder label, onInput handle ] []
    

    【讨论】:

    猜你喜欢
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    • 2021-12-16
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多