如何更新榆树的内部记录

时间:2016-01-23 01:45:08

标签: elm

我有这个模型

type alias Model = 
  { exampleId : Int
  , groupOfExamples : GroupExamples
  }

type alias GroupExamples = 
  { groupId : Int
  , results : List String
  }

在我的更新功能中,如果我想更新exampleId将是这样的:

 { model | exampleId = updatedValue }

但是,如果我需要更新,例如,只更新GroupExamples中的结果值,该怎么办?

1 个答案:

答案 0 :(得分:11)

在语言中没有任何额外内容的唯一方法是对外部记录进行解构,如:

let
    examples = model.groupOfExamples
    newExamples = { examples | results = [ "whatever" ] }
in
    { model | groupOfExamples = newExamples }

还有focus package允许您:

set ( groupOfExamples => results ) [ "whatever" ] model