嵌套ui组件并访问Elm中的全局数据

时间:2016-01-18 10:20:18

标签: elm

我有一个设计有Elm Architecture的榆树应用程序。我已经将它用于教程中的所有示例,它们工作正常。我有以下组件

  • ContainerListView
  • ContainerView
  • AddressView
  • RegistrationView
  • ...

ContainerView组件是一个非常格式化的div结构,用于包含其他视图(但目前只包含1个)

ContainerListView可以包含多个containerViews。它处理他们的演示和定位。您可以将其视为MDI表面

主ui中的菜单用于将新容器视图添加到容器视图列表中。

我提出了三个主要问题。其中两个是

  • 如何创建组件,以便Container视图可以包含任何其他元素,例如init,update和view函数,并期望所有内容都正确连接?目前,我所看到的samle视图有点硬编码。他们确切地知道孩子们是谁。

  • 某些组件需要访问诸如url,访问令牌等内容。这是否总是必须从main传递到单个组件,或者它可能来自另一个来源是readonly,也许只能从main更新?

我不确定这两个问题是否应该是个别问题。任何关于如何构建更大的应用程序beyound hello world的信息也将受到赞赏。

1 个答案:

答案 0 :(得分:1)

我正在做类似的事情!嵌套控件。我也有一个容器对象,它知道它可以处理的所有类型,并且基本上有case语句来处理每种类型。所以我不能放入一个新的控件类型并期望它处理它,这需要改变容器。

据我所知,elm没有类型类,这可能是我试图在haskell或purescript中处理这种抽象的方式。这里还有更多相关内容:

https://github.com/elm-lang/elm-compiler/issues/38

在这里:

https://github.com/elm-lang/elm-compiler/issues/1039

结果似乎是他们不知道他们想要如何解决这个问题,所以他们没有。