【发布时间】:2018-11-17 14:55:56
【问题描述】:
如何一次更新模型中的两个字段? 现在我请求返回一个别名 {price: Float, productId: Int} 我需要更新模型中的两个字段,例如 model.price 和 model.productId
我正在寻找类似的东西,但它不起作用(ofc)
case maybeProduct of
Just product ->
( { model | price = product.price &&
model | productId = product.productId}
, Cmd.none
)
Nothing ->
( model
, Cmd.none
)
我发现了一些信息,建议我可以创建两个函数 (模型 -> 产品 -> 模型)并执行以下操作:
setPrice : Model -> Product -> Model
setPrice model product =
{ model | price = product.price }
setProductId : Model -> Product -> Model
setProductId model product =
{ model | companyId = product.productId }
Just product ->
let
newModel =
product
|> setPrice model
|> setProductId model
in
( newModel
, Cmd.none
)
Nothing ->
( model
, Cmd.none
)
但有些东西不起作用。看起来产品没有传入每个函数
我收到了
论据是:
Model但是 (|>) 是一个期望的函数:
{ companyId : Int, price : Float }
我哪里错了?或者也许有不同的方法来更新模型中的两个字段?
【问题讨论】:
-
你应该看看 Elm 文档,这是他们在教程中首先介绍的内容之一:elm-lang.org/docs/records#updating-records
标签: functional-programming elm