邮箱不在范围内

Max*_*gel 8 elm

我正在尝试使用elm和elm-router创建一个前端来管理路由.

我有这个主文件:

-- Main.elm
import Router               exposing (Route, match, (:->))
import History              exposing (path)
import Routing as Routing   exposing (route)
import Signal               exposing ((<~))
import Html                 exposing (Html)
import Signal               exposing (Mailbox, mailbox, Signal)
import Task                 exposing (Task)
import Test as Test exposing (pathChangeMailbox)

main : Signal Html
main = route <~ path

port runTask : Signal (Task error())
port runTask = 
    pathChangeMailbox.signal
Run Code Online (Sandbox Code Playgroud)

此模块处理邮箱.我可以逐页使用邮箱,但它很难看,所以我尝试制作一个模块来处理所有常用代码.

module Test where

import Signal               exposing (Mailbox, mailbox, Signal)
import Task                 exposing (Task)

pathChangeMailbox : Mailbox (Task error ())
pathChangeMailbox = mailbox (Task.succeed())
Run Code Online (Sandbox Code Playgroud)

我还有一个模块Routing列出路由并将操作关联到它们.

这是处理菜单的模块,以及导航.

module Menu where

import Html             exposing (a, text, Html, div)
import Html.Events      exposing (onClick)
import Task             exposing (Task)
import History          exposing (setPath)
import Test as Test exposing (pathChangeMailbox)

display : String -> Html
display _ =
  div []
    [
      a []
      [ onClick Test.pathChangeMailbox.address (setPath "/CV.elm") ]
      [ text "Mon CV" ]
    ]
Run Code Online (Sandbox Code Playgroud)

当我尝试运行该程序时,我收到以下错误:

Error in .\src\Menu.elm:

Error on line 14, column 22 to 47:
Could not find variable 'Test.pathChangeMailbox.address'.

Looks like the prefix 'Test.pathChangeMailbox' is not in scope. Is it spelled correctly?
Is it imported correctly?

You can read about how imports work at the following address:
Run Code Online (Sandbox Code Playgroud)

你有什么,为什么即使我导入Test模块,它仍然说不Test.pathChangeMailbox在范围内?

编辑:添加Routing.elm

module Routing where

import Html             exposing (Html, div, text, br)
import Signal           exposing (Mailbox, mailbox, Signal)
import Task             exposing (Task)
import Router           exposing (match, (:->), Route)

-- Import displays
import CV as CV         exposing (display)
import Home as Home     exposing (display)

route : Route Html
route = match
    [ 
      "/src/Main.elm"   :-> Home.display
    , "/CV.elm"         :-> CV.display
    ] display404

display404 : String -> Html
display404 url =  
  div []
    [
      text "Erreur 404"
    , br [] []
    , text ("url : " ++ url ++ " not found.")
    ]
Run Code Online (Sandbox Code Playgroud)

Apa*_*hka 2

我想你在这里发现了一个错误。您应该提出问题
编辑:干得好:) 链接摘要:问题来自于混合.用于合格模块访问和记录访问。

现在有一个解决方法,导入不合格的名称并使用不合格的名称。注意我还删除了一个额外的[]

@@ -4,13 +4,13 @@ import Html             exposing (a, text, Html, div)
 import Html.Events      exposing (onClick)
 import Task             exposing (Task)
 import History          exposing (setPath)
 import Test as Test     exposing (pathChangeMailbox)

 display : String -> Html
 display _ =
   div []
     [
-      a []
-      [ onClick Test.pathChangeMailbox.address (setPath "/CV.elm") ]
+      a
+      [ onClick pathChangeMailbox.address (setPath "/CV.elm") ]
       [ text "Mon CV" ]
     ]
Run Code Online (Sandbox Code Playgroud)

(菜单.elm)