Elm 如何迭代列表(可能是一个)
我有以下图形结果: [Just{details=Just”发动机在33秒时发生故障,并失去 车辆”,发布年份=仅“2006”,链接=仅{文章链接= 只是 "" },mission_name=Just“FalconSat”}] 基于以下类型:Elm 如何迭代列表(可能是一个),elm,Elm,我有以下图形结果: [Just{details=Just”发动机在33秒时发生故障,并失去 车辆”,发布年份=仅“2006”,链接=仅{文章链接= 只是 "" },mission_name=Just“FalconSat”}] 基于以下类型: type alias Launch = { mission_name : Maybe String , details : Maybe String , launch_year : Maybe String , links :
type alias Launch =
{ mission_name : Maybe String
, details : Maybe String
, launch_year : Maybe String
, links : Maybe LaunchLinks
}
type alias Launches =
Maybe (List (Maybe Launch))
type alias LaunchLinks =
{ article_link : Maybe String
}
我想通过List.map浏览并在无序列表中显示结果。我从这个开始:
renderLaunch : Launches -> Html Msg
renderLaunch launches =
div [] <|
case launches of
Nothing ->
[ text "Nothing here" ]
Just launch ->
launch
|> List.map (\x -> x)
|> ul []
但是(|>)管道化是否是一个期望:
List (Html msg)
问题是,
Just-launch
案例需要生成一个列表(Html-msg)
,但是代码会返回不同的类型
当您使用List.map(\x->x)
时,它本质上是禁止操作的。您正在迭代列表(可能启动)
,并返回相同的内容。我建议创建另一个函数,该函数接受可能启动值,并将其用作映射函数。例如:
displayLaunch:Maybe Launch->Html Msg
显示发射发射=
案件启动
无->文本“无启动”
只需l->text(Debug.toString l)
现在,您可以将其插入映射函数:
刚刚启动->
发射
|>List.map显示启动
|>ul[]
但是,哎呀!现在,您将看到一个新错误,指示:
The 2nd branch is:
Html Msg
But all the previous branches result in:
List (Html msg)
这里的问题是,我们现在从Just launch
分支返回ul
,我们需要返回一个html列表。您可以使用List.singleton
创建仅包含一项的列表:
刚刚启动->
发射
|>List.map显示启动
|>ul[]
|>单身汉
The 2nd branch is:
Html Msg
But all the previous branches result in:
List (Html msg)