目前,我有一个只显示错误文本的嵌套组件。 view 方法接收一个 Model
并返回 Html
,但是编译器提示说 Html 需要另一个值,所以我最终这样做了:
view: Model -> Html ()
view error =
div [class "docs-section error-bar"] [
errorText error
]
errorText: Model -> Html ()
errorText error =
case error.text of
Nothing -> span [][]
Just value -> text value
我不喜欢的是我必须将 ()
值添加到签名中。有什么办法可以摆脱它吗?
谢谢!
最佳答案
Html
type只需要一个参数,因此您总是必须提供某物。使用 ()
作为类型参数是在其中放置虚拟值的常用方法。
您总是可以定义类型别名以避免每次都键入 ()
:
type alias OnlyHtml = Html ()
然后你可以适本地改变你的类型签名:
view: Model -> OnlyHtml
关于Elm:如何创建不返回 Msg 的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37257407/