我對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