榆木中错误的View函数返回类型

问题描述 投票:0回答:1

我正在制作一个程序,将屏幕上的渲染文本更改为用户在文本框中输入的内容。我认为我的Elm体系结构模型和更新部分正确,但是我真的不理解视图部分。

我只是在将头缠绕在方括号视图功能上时遇到麻烦。

无论如何,我收到此错误。

div调用产生:

Html #(Model -> Model)#

但是view上的类型注释应为:

Html #Msg#Elm

但是我不确定如何更改视图函数以返回Html Msg,我对此与字符串之间的区别有点困惑。

谢谢大家!

这是我的代码...

module Main exposing (..)

import Browser
import Html exposing (Html, div, text, input, Attribute)
import Html.Attributes exposing (..)
import Html.Events exposing (onInput)

main =
  Browser.sandbox { init = init, update = update, view = view }

type alias Model = String

init : Model
init = "Hello, World!"

type alias Msg = String

update : Msg -> Model -> Model
update msg model =
  msg

view : Model -> Html Msg
view model =
  div []
    [ input [ placeholder "Input new string", value model, onInput update ] []
    , div [] [ text model ]
    ]
elm
1个回答
0
投票

您正在将update函数作为onInput的参数传递。您可能打算将其传递给Msg,然后运行时它将传递给更新功能。

由于您的消息类型是字符串的别名,因此可以使用onInput identity

© www.soinside.com 2019 - 2024. All rights reserved.