我正在制作一个程序,将屏幕上的渲染文本更改为用户在文本框中输入的内容。我认为我的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 ]
]
您正在将update
函数作为onInput的参数传递。您可能打算将其传递给Msg,然后运行时它将传递给更新功能。
由于您的消息类型是字符串的别名,因此可以使用onInput identity