首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从导入模块的消息中提取信息?

如何从导入模块的消息中提取信息?
EN

Stack Overflow用户
提问于 2017-05-05 14:53:42
回答 1查看 40关注 0票数 0

我试图以“按钮”为例(http://elm-lang.org/examples/buttons),并将其从另一个模块导入,该模块将在同一个页面上显示其中的几个按钮。

我担心我仍然在考虑组件,但我只是想与大家分享。

我创建了加载按钮示例(Buttons.elm)稍微修改过的版本的Buttons.elm。

在Main.elm中,我有一个Buttons.Model列表,用于生成按钮列表。

我现在被困住了,因为我不知道如何从Buttons.Msg in Main.elm获得必要的信息

要查看代码:

代码语言:javascript
复制
$ git clone https://github.com/lucamug/elm-multiple-buttons.git
$ cd elm-multiple-buttons/
$ elm-package install
$ elm-reactor

然后打开

  • http://localhost:8000/source/06/buttons.elm
  • http://localhost:8000/source/06/main.elm

--解决办法

正如查德·吉尔伯在接受的答复中指出的那样,问题就在这一行:

代码语言:javascript
复制
(List.indexedMap (\position buttons -> Html.map Tag (Buttons.view position buttons)) model.buttonsList)

这是正确的版本

代码语言:javascript
复制
(List.indexedMap (\position buttons -> Html.map (Tag position) (Buttons.view buttons)) model.buttonsList)

如果您对此实现感兴趣,可以在本文https://medium.com/@l.mugnaini/recycling-elm-code-transforming-it-in-a-module-4946d5ccd3cd中找到更多详细信息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-05 15:34:13

您需要更新Tag构造函数以包含数组索引。

对守则的有关修改如下:

代码语言:javascript
复制
view model =
    div []
        (List.indexedMap (\position buttons -> Html.map (Tag position) (Buttons.view position buttons)) model.buttonsList)

type Msg
    = Tag Int Buttons.Msg

update msg model =
    case msg of
        Tag position button_Msg ->

您需要删除position = 1函数中的硬编码的update

此拉请求概述了所需的更改。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43808042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档