gpt4 book ai didi

Elm Http请求初始化

转载 作者:行者123 更新时间:2023-12-04 03:10:50 30 4
gpt4 key购买 nike

我对Elm来说还很陌生,但是慢慢地熟悉了它。我正在做一些简单的Http请求,这些请求在各个方面都成功(我得到了要显示的数据,等等)。

目前,我只能获取fetchData来触发onClick,我想在init上初始化它,但是我无法解决这个问题。

....这是我的fetchData函数:

fetchData : Cmd Msg
fetchData =
Http.get repoInfoListDecoder "http://example/api"
|> Task.mapError toString
|> Task.perform ErrorOccurred DataFetched

当前是由onClick事件在 View 中触发的:
.....
, button [ onClick FetchData ] [ text "Load Data" ]
.....

我想避免通过按钮请求数据,而是希望在应用程序初始化时加载数据。这是我的初始化:
init =
let
model =
{ message = "Welcome", repos = [] }
in
model ! []

和我的更新(例如,剥离的……):
update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
case msg of
NoOp ->
model ! []
...........
FetchData ->
{ model | message="hi" } ! [fetchData]
...........
DataFetched repos ->
{ model | repos = repos, message = "The data has been fetched!" } ! []

这有意义吗?在加载应用程序时,我只是很难初始化fetchData,因此无需单击按钮即可获取数据即可显示我的数据。

提前致谢!

最佳答案

当您使用Html.program时,您的init函数将返回要执行的Model和Command的初始数据。

命令是副作用,例如HTTP请求。

尝试更改init,以便它立即运行Command:

init: (Model, Cmd Msg)
init =
let
model =
{ message = "Welcome", repos = [] }
in
model ! [ fetchData ]

关于Elm Http请求初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39967330/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com