问题标签 [elm-architecture]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
elm - 如何从 Elm 中的组件调用父消息?
我有一个模态窗口,可以在其中显示不同的组件。每个组件都有自己的更新程序和消息,但我想在它们之间共享一个关闭按钮。
因此我不能直接从我的孩子那里调用“CloseModal”——Elm 不允许我调用其他人的消息。我有哪些选择?
我以为我可以调用“Modal.Update.update Modal.Messages.CloseModal”,但在我的组件内部我只有一个状态块。所以这不是一个选择。
然后我找到了一种将消息从父母传递给孩子的方法,但它并不能帮助我以其他方式传递消息。或者给兄弟姐妹。
elm - `Cmd msg` 是什么意思?
我正在尝试使用端口将 URL 传递给 Javascript,以便将用户重定向到另一个页面。我写了一个port module
包含我的项目所需的所有端口:
然后,我将它导入到我的 Elm 文件中:
但是编译器不喜欢它:
所以我将端口定义移动到主文件:
但编译器仍然不同意:
所以我去看了那个特殊的格式,port check : String -> Cmd msg
. 我不明白这是msg
从哪里来的,所以我去检查了代码,我仍然不明白那行是什么意思。
从哪里来msg
?是什么type Cmd msg = Cmd
意思?提前致谢。
elm - Elm - 把 Msg 变成 Cmd Msg
我正在尝试从elm-lang 教程中修改一个简单的应用程序,以首先更新模型,然后触发另一个更新。
这在编译器中失败,因为 NewTopic 分支:
所以我的 Msg 需要输入 Cmd Msg。我怎样才能把“我的消息”变成一个 Cmd 消息?
注意:我知道有一种更简单的方法可以进行这种更改,但我试图从根本上理解 Elm
elm - 为什么 Elm 架构被称为 TEA?
我TEA
在网络上的很多地方都看到过这个首字母缩写词(?!)——意思是榆树架构——但我不明白每个首字母代表什么。谢谢。
elm - elm架构中如何处理多个订阅
我正在阅读榆树指南。
在效果子章节中,有一个带有时间订阅的示例
以及一个处理 Web-Sockets-subscriptions 的示例
但在这些示例中,只有一个订阅。我如何处理多个订阅?
elm - `Msg` 类型如何在 Elm 中分成多种类型?
在 Elm 中使用 model 和 update 的标准方法是定义 Model 和 Msg 类型,以及 update 函数:
当应用程序增长时,所有这些类型和功能都会变得更加复杂。我想通过以下方式将它们分开:
然后,我想分别处理所有这些(我知道该怎么做)。
不过,我的视图功能有问题。我将我的观点定义如下:
问题是,view1 的结果是Html Msg1
,而视图函数需要Html Msg
。
有没有办法将结果从 转换Html Msg1
为Html Msg
?
architecture - 一个页面如何发出消息以导航到 Elm 中的另一个页面?
这是我的 Elm 应用程序当前的结构:
类型.榆树:
登录.elm:
我坚持以下看似相互竞争的要求:
- 试图保持页面彼此相当独立,它们
Msg
和Model
类型可以独立推理 - 使页面知道彼此的存在(在类型级别),以便它们的视图/更新功能可以发出
NavigationStart page
消息以在彼此之间导航。
在 Elm 中实现这一目标的最佳方法是什么?
elm - Elm 中的序列 Http.get
下面我有一个button
尝试加载远程内容...
这是一个有效的 Elm 程序,只有一个小问题:API 不允许我按字符串搜索。这是不允许的
但是,这是允许的
所以我必须先获取一个作者来获取他/她id
,然后我可以使用作者的 id 获取帖子......
如何在下一个请求之后对一个请求进行排序?理想情况下,我想将作者缓存在模型中的某个位置,因此我们只请求我们以前从未见过的作者。
types - 在 Elm 中使用 NoMap 在初始化时使用 http 请求映射 Msg
我正在构建我的第一个 Elm 应用程序,并根据以下来源对其进行构建:
这意味着我将我的Msg
类型从我的主要函数映射Types.elm
到我的子函数。做一个简单的onClick
功能时看起来像这样
onClick (MsgForPieChart <| SelectSlice <| sliceModel.points)
现在我想在 init 上获取一些数据以供查看。
onClick
我尝试遵循与简单函数相同的方法
我的主要类型如下所示:
http
对于请求,我的子函数类型看起来像这样
但无论我尝试什么,我都会不断收到这样的类型错误,Http.send
或者Task
我尝试的任何方法
但它是:
我的更新功能的结构如下:
那么我如何http
在初始化时为我的子函数获取请求,该函数使用 NoMap 模式进行组合Msg
elm - 在 Elm 架构中编写程序
假设我想创建一个包含两个组件的网页,比如 aNavbar
和 a Body
。这两个组件互不交互,可以独立开发。所以,我有两个 elm 文件,每个文件都包含以下组件:
假设它们都工作正常,我们如何组合它们来制作一个同时具有这两个组件的程序?
我试着写这样的东西:
当我尝试编写这个更新函数时,上面的内容很快变得很难看。特别是,一旦我从Navbar.update
or中提取出 Cmd 的更新函数中的 Msg Body.update
,我如何提取它们并将它们再次反馈给这些函数?此外,上面的视图函数看起来并不特别地道。
解决此问题的 elm-architecture 推荐方法是什么?这种模式在 elm-architecture 中是惯用的吗?