Отображение Msg с использованием NoMap в Elm с запросом http на init - PullRequest
0 голосов
/ 02 июля 2018

Я создаю свое первое приложение Elm и структурирую его в соответствии с этими источниками:

Как я структурирую приложения вяза

Подход NoMap с фокусом домена

Это означает, что я сопоставляю свои Msg типы из моих основных Types.elm с моими дочерними функциями Который выглядит так при выполнении простой onClick функции

onClick (MsgForPieChart <| SelectSlice <| sliceModel.points)

Теперь я хочу получить некоторые данные по init для просмотра.

Я пытался следовать тому же подходу, что и для простой onClick функции

getWarAndPeace : Cmd Msg
getWarAndPeace =
    Http.send (MsgForMuseums <| FetchedMuseums) <|
        Http.getString "https://example.com/books/war-and-peace.md"

Где мой основной тип выглядит так:

type Msg
= MsgForPieChart Atom.PieChart.Types.Msg
| MsgForMuseums Organism.Museums.Types.Msg 
| NoOp

И мой тип дочерней функции выглядит так для http запросов

type Msg = 
FetchedMuseums (Result Http.Error String)

Но что бы я ни пытался, я получаю ошибки типа Http.send или Task или любой другой подход, который я пробую

Result Http.Error a -> App.Types.Msg

Но это:

App.Types.Msg

Мои функции обновления имеют следующую структуру:

update : App.Types.Msg -> Organism.Museums.Types.MuseumsModel -> Organism.Museums.Types.MuseumsModel
update msgFor model =
case msgFor of
    MsgForMuseums msg ->
        updateMuseums msg model
    _ ->
        model


updateMuseums : Organism.Museums.Types.Msg -> Organism.Museums.Types.MuseumsModel -> Organism.Museums.Types.MuseumsModel
updateMuseums msg model =
    case msg of
        FetchedMuseums data -> model

Итак, как мне получить http запросов на инициализацию для моей дочерней функции, которая использует шаблон NoMap для объединения Msg

1 Ответ

0 голосов
/ 03 июля 2018

Использование Http.send (MsgForMuseums << FetchedMuseums) по предложению Догберта действительно решило проблему

...