Elm 什么';在SPA中初始化UI的推荐做法是什么?

Elm 什么';在SPA中初始化UI的推荐做法是什么?,elm,Elm,我正在努力弄清楚如何将数据加载到动态生成的视图中 因此,如何在视图上触发update函数,以便使用web请求的数据对其进行初始化 以下是视图的渲染方式: case portal.requested of Domain.ViewSources -> div [] [ Html.map SourcesUpdated <| Sources.view { profileId

我正在努力弄清楚如何将数据加载到动态生成的视图中

因此,如何在视图上触发update函数,以便使用web请求的数据对其进行初始化

以下是视图的渲染方式:

case portal.requested of
    Domain.ViewSources ->
        div []
            [ Html.map SourcesUpdated <|
                Sources.view
                    { profileId = portal.provider.profile.id
                    , platforms = model.platforms
                    , source = portal.newSource
                    , sources = loggedIn.profile.sources
                    , isInitialized = False
                    }
            ]
在过去,模块的更新功能会在按键输入和按钮点击事件时触发。但是,现在我需要加载来自过去用户会话的数据。因此,我很难在用户第一次查看页面时触发更新功能

以下是我想做的:

update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
    if not model.isInitialized then
        ( model, runtime.sources model.source.profileId SourcesResponse )
    else ...

以下是。

您应该利用init函数获取包含初始命令的元组的一面,其结果将传递给update函数

main =
    Html.program
        { init = ( init, runtime.sources init.source.profileId SourcesResponse )
        , view = view
        , update = update
        , subscriptions = (\_ -> Sub.none)
        }

我了解到我可以简单地将状态传递给我的视图函数

div []
    [ Html.map SourcesUpdated <|
        Sources.view
            { ...
            , sources = loggedIn.profile.sources
            }
    ]
div[]

[Html.map SourcesUpdated谢谢。但是,如何将参数传递给此主函数?当我提供参数时,会出现编译错误。因此,主函数上未定义模型。您要传递的参数来自何处?url中的某个标志或状态?我决定将参数嵌入为客户端使用的模型的属性提供给模块。但是,我仍然停留在如何使用作为参数传递的状态调用init上。我想我已经不明白了-你似乎在描述一个不可能的世界,其中有两个主要函数?作为一个初学者,我肯定我没有很好地解释自己。我基本上是在尝试用外部p初始化一些UI提供的数据。我需要在显示此UI时触发更新功能,而不需要实际用户生成事件来触发模块的更新功能。您可以使用JS加载数据并将其作为应用程序标志传递,也可以让您的
init
功能执行命令。
div []
    [ Html.map SourcesUpdated <|
        Sources.view
            { ...
            , sources = loggedIn.profile.sources
            }
    ]