我要做的是创建一个函数,在用户点击列标题时对列表进行排序,因此我的sort函数将使用字符串或(。)函数来指示要排序的字段。我如何实现这一目标?
答案 0 :(得分:3)
您无法使用字符串访问记录字段,因为Elm编译器无法确定您的代码是否正确。您应该创建自己的函数,将列名称映射到可能的字段名称,然后将其与核心List.sortBy一起使用:
type alias User = { name : String, height: Int }
sort : String -> List User -> List User
sort column rows =
case column of
"name" -> List.sortBy .name rows
"height" -> List.sortBy .height rows
_ -> rows