我有一个设计有Elm Architecture的榆树应用程序。我已经将它用于教程中的所有示例,它们工作正常。我有以下组件
ContainerView
组件是一个非常格式化的div结构,用于包含其他视图(但目前只包含1个)
ContainerListView
可以包含多个containerViews。它处理他们的演示和定位。您可以将其视为MDI表面
主ui中的菜单用于将新容器视图添加到容器视图列表中。
我提出了三个主要问题。其中两个是
如何创建组件,以便Container视图可以包含任何其他元素,例如init,update和view函数,并期望所有内容都正确连接?目前,我所看到的samle视图有点硬编码。他们确切地知道孩子们是谁。
某些组件需要访问诸如url,访问令牌等内容。这是否总是必须从main
传递到单个组件,或者它可能来自另一个来源是readonly,也许只能从main更新?
我不确定这两个问题是否应该是个别问题。任何关于如何构建更大的应用程序beyound hello world的信息也将受到赞赏。
答案 0 :(得分:1)
我正在做类似的事情!嵌套控件。我也有一个容器对象,它知道它可以处理的所有类型,并且基本上有case语句来处理每种类型。所以我不能放入一个新的控件类型并期望它处理它,这需要改变容器。
据我所知,elm没有类型类,这可能是我试图在haskell或purescript中处理这种抽象的方式。这里还有更多相关内容:
https://github.com/elm-lang/elm-compiler/issues/38
在这里:
https://github.com/elm-lang/elm-compiler/issues/1039
结果似乎是他们不知道他们想要如何解决这个问题,所以他们没有。