【发布时间】:2020-10-17 03:08:52
【问题描述】:
我正在学习 F#(慢慢地)。
我该如何解决这个问题?
解释:“reset m”初始化模型记录并返回一个新的模型记录。 "update msg m" 返回一个新的模型记录。
我在这里尝试对 SelectMsg 执行的操作是首先更新/重置“模型”m,然后设置 new 的属性 SelectedOutterRow模型(由reset产生)。
这失败了:
let update msg m =
match msg with
| SelectMsg rId ->
reset m |> { m with SelectedOutterRow = rId }
这样就成功了,只是返回了原来的non-reset模型
let update msg m =
match msg with
| SelectMsg rId ->
reset m |> ignore
{ m with SelectedOutterRow = rId }
在哪里
type Model =
{ OutterRows: OutterRow.Model list
SelectedOutterRow: Guid option }
let reset m =
let rows =
m.OutterRows
|> List.map (fun r -> OutterRow.reset r)
{ m with OutterRows = rows; SelectedOutterRow = None }
那么,简而言之,我如何编写 lambda 以首先重置模型,更新模型,最后返回新模型?
感谢您的帮助。
TIA
【问题讨论】:
-
{ reset m with SelectedOutterRow = rId }可能是你想要的。
标签: f#