这是我的 Elm 应用程序当前的结构:
类型.elm:
import Pages.Login.Types as Login
import Pages.Dashboard.Types as Dashboard
type Page = LoginPage
| DashboardPage
type Msg = LoginMsg Login.Msg
| DashboardMsg Dashboard.Msg
| NavigationStart Page
| NavigationEnd Page
type Model = LoginModel Login.Model
| DashboardModel Dashboard.Model
登录.elm:
import Pages.Login.Types as PageTypes
import Types
view : (PageTypes.Msg -> msg) -> PageTypes.Model -> Html msg
view = -- some code
我坚持以下看似相互矛盾的要求:
- 尽量使页面彼此完全独立,其中它们的
Msg
和Model
类型可以独立推理 - 让页面知道彼此的存在(在类型级别),以便它们的查看/更新功能可以发出
NavigationStart page
消息以在彼此之间导航。
在 Elm 中实现此目标的最佳方法是什么?
最佳答案
查看 Richard Feldman 的单页示例存储库 here .本质上你有一个顶级应用程序,它管理每页的每个模型\ View \更新。
关于architecture - 一个页面如何发出消息以导航到 Elm 中的另一个页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51006909/