如何在榆树中呈现列表?

How to render list in 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))

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

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

要使用 ul,请参阅上一个答案。感谢乍得。

我有一个补充。您不能创建递归记录。您应该创建类似 type TaxonomyTerm = TaxonomyTerm Guid String (List TaxonomyTerm).

的结构