有没有办法在Elm Html中生成空的Html节点?
我正在编写一个显示错误消息的函数,因此在我看来有没有办法在Elm Html中生成空的Html节点?,elm,Elm,我正在编写一个显示错误消息的函数,因此在我看来 div [] [ displayErrors model ] 如果没有错误,如何使displayErrors返回被解释为空Html节点的内容?您可以使用带有空字符串的节点: emptyNode = Html.text "" @罗伯特鲁比的回答在我看来非常好 但是,如果您真的不想有任何节点,可以使displayErrors返回Maybe(Html msg) 然后,您可以将代码更改为以下内容: import Maybe.Extra exposing
div [] [ displayErrors model ]
如果没有错误,如何使displayErrors返回被解释为空Html节点的内容?您可以使用带有空字符串的节点:
emptyNode = Html.text ""
@罗伯特鲁比的回答在我看来非常好 但是,如果您真的不想有任何节点,可以使
displayErrors
返回Maybe(Html msg)
然后,您可以将代码更改为以下内容:
import Maybe.Extra exposing (maybeToList)
div [] ( displayErrors model |> maybeToList )
当displayErrors
返回Nothing
时,div
将真正为空
注意:您可以使用以下命令安装Maybe.Extra模块:
elm package install elm-community/maybe-extra
这是否得到了优化?我担心使用这些幻影节点,因为可能会触发一些CSS规则,导致意外的结果。@jz87看起来什么都没有渲染是的,这是一个很好的解决方案。唯一的问题是,如果我在列表中使用这个。例如:div[][stuff,(displayErrors model |>maybeToList)],这实际上不起作用。我想用现有的Html函数签名并没有很好的方法来解决这个问题。可能返回的签名应该是Maybe(Html Msg)而不是Html Msg。在这种情况下,您可以连接列表:
div[]([stuff]++(displayErrors model |>maybeToList))