2016-05-02 14 views
2

Was ist die richtige/beste Möglichkeit, einen Datensatz innerhalb eines Datensatzes zu aktualisieren?elm - Aktualisieren eines Datensatzes in einem Datensatz

Der folgende Versuch:

type alias Model = 
    { pageView : PageView 
    , landingPageModel : Dict 
    } 

--update 
update : Action -> Model -> Model 
update action model = 
    case action of 
    ChangePage pView -> 
    { model | pageView = pView } 
    PostCode pCode -> 
    let 
     lPModel = 
     model.landingPageModel 
     newlPModel = 
     { lPModel | postCode = pCode } 
    in 
     { model | landingPageModel = newlPModel } 

diesen Fehler gab:

The type annotation for `update` does not match its definition. 

19│ update : Action -> Model -> Model 
      ^^^^^^^^^^^^^^^^^^^^^^^^ 
The type annotation is saying: 

    Action 
    -> { ..., landingPageModel : Dict } 
    -> { ..., landingPageModel : Dict } 

But I am inferring that the definition has this type: 

    Action 
    -> { ..., landingPageModel : { a | postCode : String } } 
    -> { ..., landingPageModel : { a | postCode : String } } 

Diese etwas überraschend ist - ist nicht ein wörtlicher Dict Update vom Typ Dict?

+1

Diese Frage hat nichts mit Wörterbüchern zu tun, bitte bearbeiten Sie sie. – halfzebra

+1

Danke, das wurde gemacht – category

+2

Dies ist Elm 'Objektiv' Bibliothek, aber beachten Sie die Gesundheitswarnungen - ich habe es nie in der Praxis verwendet http://package.elm-lang.org/packages/evancz/focus/2.0.0/ –

Antwort

0

ich einfach notwendig, um die Model Definition zu erweitern:

type alias Model = 
    { pageView : PageView 
    , landingPageModel : { postCode : String } 
    } 

Auch nach halfzebra Kommentar, haben Dict die keine Bedeutung hier - nur Aufzeichnungen.

Verwandte Themen