我试图以“按钮”为例(http://elm-lang.org/examples/buttons),并将其从另一个模块导入,该模块将在同一个页面上显示其中的几个按钮。
我担心我仍然在考虑组件,但我只是想与大家分享。
我创建了加载按钮示例(Buttons.elm)稍微修改过的版本的Buttons.elm。
在Main.elm中,我有一个Buttons.Model列表,用于生成按钮列表。
我现在被困住了,因为我不知道如何从Buttons.Msg in Main.elm获得必要的信息
要查看代码:
$ git clone https://github.com/lucamug/elm-multiple-buttons.git
$ cd elm-multiple-buttons/
$ elm-package install
$ elm-reactor然后打开
--解决办法
正如查德·吉尔伯在接受的答复中指出的那样,问题就在这一行:
(List.indexedMap (\position buttons -> Html.map Tag (Buttons.view position buttons)) model.buttonsList)这是正确的版本
(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中找到更多详细信息。
发布于 2017-05-05 15:34:13
您需要更新Tag构造函数以包含数组索引。
对守则的有关修改如下:
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。
此拉请求概述了所需的更改。
https://stackoverflow.com/questions/43808042
复制相似问题