Elm 无法公开UnionType
我有两个elm模块试图共享一个联合类型,因为我试图按照这里所述重构我的应用程序,但我一直在使用它 不暴露 尽管我试着将其建模为 单元1Elm 无法公开UnionType,elm,union-types,Elm,Union Types,我有两个elm模块试图共享一个联合类型,因为我试图按照这里所述重构我的应用程序,但我一直在使用它 不暴露 尽管我试着将其建模为 单元1 module Module1 exposing ( OneMsg(..), Model, view, [etc.] ) ... type OneMsg = Name String ... 单元2 module Module2 exposing(..) import Module1 exposing(OneMsg(..)) type Msg
module Module1 exposing ( OneMsg(..), Model, view, [etc.] )
...
type OneMsg
= Name String
...
单元2
module Module2 exposing(..)
import Module1 exposing(OneMsg(..))
type Msg
= UrlChange Navigation.Location
| ...
| Module1Msg Module1.OneMsg
...
Html.map Module1.OneMsg (Module1.view model)
...
获取此错误
-- NAMING ERROR ---------------------------------------------- ././view/View.elm
Cannot find variable `Module1.OneMsg`.
74| Html.map Module1.OneMsg (Module1.view model)
^^^^^^^^^^^^^^^^^^
`Module1` does not expose `OneMsg`.
我在这里发现的唯一一件事是一个古老的问题,它似乎是同一个事件,尽管有一个古老的语法:
如果相关,我使用elm 0.18.0
我打赌我错过了什么。有人能发现问题吗?
Module1.OneMsg
是一种类型Html.map
需要一个函数作为其第一个参数。您通常会以如下方式弹出消息(在Module2
中):
然后您可以在模块2
中这样使用它:
type Module2Msg
= ...
| Module1Msg Module1.OneMsg
Html.map Module1Msg (Module1.view model)
Module1.OneMsg
是一种类型Html.map
需要一个函数作为其第一个参数。您通常会以如下方式弹出消息(在Module2
中):
然后您可以在模块2
中这样使用它:
type Module2Msg
= ...
| Module1Msg Module1.OneMsg
Html.map Module1Msg (Module1.view model)
您能显示
OneMsg
的类型定义吗?它就在那里,我刚刚重命名了它,以便将问题分开并忘记了一个位置。您能显示OneMsg
的类型定义吗?它就在那里,我刚刚重命名了它,以便将问题分开并忘记了一个位置。对不起,忘记包含“main”我有味精。已编辑问题以包含此内容。抱歉,我不重复使用该名称。我想这样做是相当愚蠢的。这是一个简单的复制粘贴错误。在这种情况下,您应该可以使用Html.map Module1Msg(Module1.view model)
(答案更新)现在我看到了。Html.mapModule1.OneMsg(Module1.view模型)
vsHtml.map Module1Msg(Module1.view模型)
。谢谢。对不起,忘了把我的“主要”味精放进去了。已编辑问题以包含此内容。抱歉,我不重复使用该名称。我想这样做是相当愚蠢的。这是一个简单的复制粘贴错误。在这种情况下,您应该可以使用Html.map Module1Msg(Module1.view model)
(答案更新)现在我看到了。Html.mapModule1.OneMsg(Module1.view模型)
vsHtml.map Module1Msg(Module1.view模型)
。谢谢