我正在构建我的第一个 Elm 应用程序,并根据以下来源对其进行构建:
这意味着我将我的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