我对Elm很新,但是慢慢熟悉它。我正在做一些简单的Http请求,它在每个方面都很成功(我得到要显示的数据等)初始化Elm Http请求
目前我只能让我的fetchData触发onClick,我想初始化这个初始化,但我无法绕过这个包裹。
....这里是我的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:
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时遇到困难,所以我可以显示数据而无需点击按钮来获取数据。
提前致谢!
谢谢!清楚的解释! – mmmaceo
@mmmaceo高兴地帮助! – halfzebra