如何一次更新模型中的两个字段? 现在,我已要求返回一个别名为{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 }
我在哪里弄错了?还是有不同的方法可以更新模型中的两个字段?
答案 0 :(得分:6)
执行以下操作(这不包括命令-您可以根据需要添加命令):
{ model | price = new_price, productId = newProductId}
(我自己是在学习ELM,如果那是不正确的,那么我就是apol)。
这里是@JackLeow非常友善发布的链接:https://elm-lang.org/docs/records#updating-records