【发布时间】:2016-10-10 21:53:39
【问题描述】:
我对 Elm 很陌生,但慢慢熟悉它。我正在做一些简单的 Http 请求,这些请求在各个方面都是成功的(我得到要显示的数据等)
目前我只能让我的 fetchData 触发 onClick,我想在 init 上初始化它,但我无法解决这个问题。
....这是我的 fetchData 函数:
fetchData : Cmd Msg
fetchData =
Http.get repoInfoListDecoder "http://example/api"
|> Task.mapError toString
|> Task.perform ErrorOccurred DataFetched
当前在视图中由 onClick 事件触发:
.....
, 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,所以我可以显示我的数据而无需点击按钮来获取它。
提前致谢!
【问题讨论】:
标签: elm