Elm 在列表上循环以创建元素

Elm 在列表上循环以创建元素,elm,Elm,这个设置似乎是正确的,但显然不是,我看不出哪里出了问题。我试图循环一个“对象列表”,为列表中的每个项目创建一个ul,其中包含lis,并将它们放在div中。忽略所有涉及ID的内容。我感觉我不完全确定List.map如何返回 type alias Product = { a : String , b : String , c : Int , d : String , e : String } type alias Model = { id : String , pr

这个设置似乎是正确的,但显然不是,我看不出哪里出了问题。我试图循环一个“对象列表”,为列表中的每个项目创建一个
ul
,其中包含
li
s,并将它们放在
div
中。忽略所有涉及ID的内容。我感觉我不完全确定
List.map
如何返回

type alias Product =
  { a : String
  , b : String
  , c : Int
  , d : String
  , e : String
  }

type alias Model =
  { id : String
  , products : List Product}

view : Model -> Html Msg
view model =
  div []
    [ input [ type' "text", onInput UpdateText ] []
    , button [ type' "button", onClick GetProduct ] [ text "Search" ]
    , br [] []
    , code [] [ text (toString model.products) ]
    , div [] [ renderProducts model.products ]
    ]

renderProduct product =
  let
    children =
      [ li [] [ text product.a ] 
      , li [] [ text product.b ] 
      , li [] [ text (toString product.c) ] 
      , li [] [ text product.d ] 
      , li [] [ text product.e ] ]
  in
    ul [] children

renderProducts products =
  List.map renderProduct products
错误如下:

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

  78|       div [] [ renderProducts model.products ]
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Function `div` is expecting the 2nd argument to be:

  List (VirtualDom.Node a)

But it is:

  List (List (Html a))

renderProducts
返回元素列表。
div
的第二个参数获取元素列表。通过将第二个参数括在括号中,可以创建一个包含单个元素列表的列表。这就是为什么错误消息说

您应该这样做:

div[](renderProducts model.products)

renderProducts
返回元素列表。
div
的第二个参数获取元素列表。通过将第二个参数括在括号中,可以创建一个包含单个元素列表的列表。这就是为什么错误消息说

您应该这样做:

div[](renderProducts model.products)

谢谢。我知道这一定是某种疏忽。谢谢。我知道这一定是某种疏忽。
But it is:

    List (List (Html a))