我有一个应用程序,用户可以在其中创建项目。该currentProject模型中的一个是Maybe Project与初始值设置为类型Nothing(因为可能不存在该用户尚未创建项目)。
type alias Project =
{ name : String }
type alias Model =
{ user : User
, currentProject : Maybe Project
}
Run Code Online (Sandbox Code Playgroud)
这是在init模型中:
currentProject = Nothing
然后我有一个下拉菜单,用户可以在其中选择一个项目。选择它后会onClick调用以下更新:
type Msg
= ...
| SetProject Project
Run Code Online (Sandbox Code Playgroud)
我尝试运行的更新功能如下所示:
SetProject project ->
case project of
Just project ->
( { model | currentProject = project }, Cmd.none )
Nothing ->
( model, Cmd.none )
Run Code Online (Sandbox Code Playgroud)
我收到错误,因为project是类型Project而不是Maybe Project。
我知道该项目存在,因为它来自应用程序中的现有项目列表。但是,我无法设置currentProject为输入,Project因为我需要使用Nothing.
那么,如何Maybe Project使用 type更新记录Project?
使用Just构造函数:
SetProject project ->
( { model | currentProject = Just project }, Cmd.none )
Run Code Online (Sandbox Code Playgroud)