如何在elm中呈现列表?

时间:2016-06-27 18:00:32

标签: list render elm

我很难在视图函数中呈现自定义类型列表。 这是模型:

type alias Guid = String
type alias User = String

type alias TaxonomyCategory =
  { id : Guid
  , name: String
  , updatedAt: Date
  , updatedBy: User
  , terms: List TaxonomyTerm
  }

type TaxonomyTerm =
  TaxonomyTerm
    { id : Guid
    , name: String
    , terms: List TaxonomyTerm
    }

我尝试了几种使用List.map函数的方法,但我总是遇到某种错误信息。

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

120|       ul
121|         []
122|>        [ List.map renderTaxonomyTerm tc.terms ]

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

    List (VirtualDom.Node a)

But it is:

    List (List (Html a))

2 个答案:

答案 0 :(得分:7)

ul的第二个参数应该是Html元素的列表。您的第二个值包含列表中的列表,因为您用括号括起它。将其更改为此应解决您的问题:

ul
  []
  (List.map renderTaxonomyTerm tc.terms)

答案 1 :(得分:0)

使用ul请参阅上一个答案。感谢Chad。

我有一个补充。您无法创建递归记录。您应该创建类似type TaxonomyTerm = TaxonomyTerm Guid String (List TaxonomyTerm)的结构。