我正在尝试从ELM中的简单数组构建元素列表。预期结果实际上只是一个元素列表,其中第一项为1,第二项为2,依此类推。

import Html exposing (..)
import Html.Attributes exposing (class, id)
import List exposing (map)

theArray = [1,2,3,4,5,6]

createListItem item =
  li [] [ text (toString item)]

buildList collection =
  map createListItem collection

builtList = ul [] [(buildList theArray)]

main =
  builtList


但是我一直在第十三行遇到编译器错误。我尝试将map元素注释为html,但看不到该怎么做。

The 2nd argument to function `ul` is causing a mismatch.

 *13| builtList = ul [] [(buildList theArray)]*

Function `ul` is expecting the 2nd argument to be:

    List VirtualDom.Node

But it is:

    List (List Html)

最佳答案

buildList已经返回了List Html类型的值,因此您不需要在(buildList theArray)周围使用方括号。将第13行更改为:



builtList = ul [] (buildList theArray)

10-06 04:02