问题标签 [reflex]
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.
haskell - Haskell Reflex:字符串类型错误
我正在研究 github 页面上的 reflex-frp 示例,并被困在 Dynamics and Events 部分。我尝试使用 ghcjs 编译以下代码:
但我得到了错误
我知道字符串应该被解析为 Data.Text.Internal.Text,但不知道如何做到这一点 - 我认为顶部的 OverloadedStrings 语句应该解决这个问题。有谁知道如何解决这个错误?
haskell - 你如何定义一个不能推导的类型的 Haskell 类型类?
我正在使用Reflex.Dom 库,它定义了一组用于创建 HTML DOM 元素的函数
el
创建一个元素el'
创建并返回一个元素elAttr
创建具有给定属性的元素elAttr'
创建并返回具有给定属性的元素- ETC
我正在制作自己的小部件库,我不想为每个小部件定义所有这些变体。所以我写了一个类型类,它使用相同的名称,但是根据彼此定义所有函数,每个实例中只定义一个:
我创建了一个使用原始实例elAttr'
来测试它的实例。有效:
然后我创建了一个Button
小部件实例,它在单击按钮时返回一个事件。有效:
我希望能够编写小部件,所以我尝试重写Button
实例以使用Text
实例ElMaker
来创建元素。但它无法编译:
编译器输出:
我认为这是因为该函数没有对限制其类型的值做任何事情,并且编译器确实希望它具有具体类型。但是这个类型类并不关心那个类型参数的值是什么。有什么办法可以编译这个吗?
haskell - 如何在 Reflex Dynamic 内的值上进行分支?
在最简单的情况下,假设我有一个Dynamic t Bool
,当值为 true 时,我希望存在一个空 div,而当值为 false 时,我不希望有任何 dom 元素。
更一般地说,如果我有 a Dynamic t (Either MyA MyB)
,并且我有知道如何渲染给定 aDynamic t MyA
或 aDynamic t MyB
的函数,我如何调用适当的函数来渲染?
haskell - 如何有效地对 Reflex.Dynamic 中的值进行分支?
假设我有一些应用程序状态,在某个后端系统上维护。看起来像这样
我还有一个从后端系统获取最新状态的功能
我很确定我可以通过反复查询后端来弄清楚如何将其打包成动态,这样我就有了
我想把它渲染成 html。我希望数据结构的每个部分都呈现给一个 div。但是,根本不应该渲染不存在的东西——所以,当ms2_maybe_char
is时Nothing
,它不应该有 div,而当MyState
is a时State1
,不应该有 div State2
。
为了清楚起见,举几个例子:
变成
和
变成
理想情况下,DOM 的每个部分都应该只在必要时进行修改——所以如果ms2_maybe_char
从Nothing
to更改Just 'a'
,则需要创建一个新的 div。或者如果ms1_text
从"foo"
变为"bar"
,那么我们需要在 DOM 中更改该字符串。但是,更改ms1_text
不应导致重绘兄弟节点或父节点。
我应该如何构建我的代码?getLatestState
考虑到api 作为构建块,这甚至可能吗?我是否完全错过了 Reflex 的要点,试图建立一个单一的Dynamic
价值,我需要重新考虑我的方法?
特别是,第一个绊脚石是我无法轻松检查 Dynamic 以了解它是否包含 State1 或 State2。我可以在这里使用dyn
or widgetHold
,以及fmap
一个dynMyState
可以将状态视为简单值并生成m ()
绘制整个事物的动作的函数。但是,然后我失去了所有的共享——整个 UI 将在每次状态更改时从头开始重新绘制。
注意:这是一个更详细的后续问题,我如何在 Reflex Dynamic 内的值上进行分支?. 这个问题的不同/更清楚的是,不丢失检查值内所有内容的有效更新的额外愿望。感谢所有在这个问题上提供帮助的人!
frp - 切换到包装在单子上下文中的事件
我的具体问题是这样的:
给定 anEvent t [a]
和 an Event t ()
(假设它是一个滴答事件),我想生成一个Event t a
,即一个事件,它为每次发生滴答事件提供输入列表中的连续项目。
Reflex 有以下助手:
这正是我想要的,但不将事件作为输入,而只是一个列表。鉴于我有一个Event t [a]
,我认为我可以产生一个包含事件的事件并只是切换,但问题是它zipListWithEven
在单子上下文中运行,因此我可以得到:
这是switch
原始人不接受的东西。
现在,也许我以错误的方式接近它,所以这是我的一般问题。给定一个生成坐标列表和刻度事件的事件,我想生成一个可以“使用”沿坐标移动对象的事件。因此,每次触发滴答声时,都会更新位置。每次我更新坐标列表时,它都会开始从该新列表中生成位置。
haskell - Haskell:如何修复“类型变量歧义”编译器错误?
我正在使用 GHCJSi,版本 0.2.0-7.10.3:http ://www.github.com/ghcjs/ghcjs/ 和来自https://github.com/reflex-的 reflex-dom 库版本 0-4 frp/反射域。我没有使用来自 Hackage 的 reflex-dom-0.3。
以下 Haskell 程序无法使用 reflex-dom-0.4 编译:
我得到错误
我内联了 reflex-dom 库函数decodeXhrResponse
(以及decodeText
)。我将类型签名更改为FromJSON a => XhrResponse -> Maybe a
没有类型变量的签名XhrResponse -> Maybe Apod
。然后程序编译成功。
我试图为 rspApod 添加一个作用域类型变量,例如 rspApod :: Event t Apod
or rspApod :: Event Spider Apod
但它没有帮助。
问题:
如何更改第一个程序才能成功编译?(内联和更改库函数是一个非常糟糕的技巧!)
为什么编译器没有找到并使用FromJSON
数据类型的实例Apod
?
jquery - 材质 UI + reflex-frp => 下拉/选择不起作用
我尝试将 Material UI 与 reflex frp 集成 - 虽然正常(仅 css 元素)看起来不错且光滑 - 似乎下拉/选择表单元素需要一些 jQuery 来初始化 - 这不起作用:
我试图重新排序<script>
语句index.html
并将runmain.js
-line 之前的 document-ready-jQuery 字符串放入正文中。
我还通过插入一个alert
.
Main.hs
index.html
haskell - ReflexFRP:如何在按钮单击时从 textInput 设置按钮文本
我有一个简单的小部件,它应该从给定的文本输入字段设置按钮的“文本”。
虽然我设法做了一个简单的清晰功能
我没有设法设置按钮标签 - 下面的代码编译
但查看输出index.html
- 我只得到一个带有控制台错误消息的白页:
rts.js:7313 thread blocked indefinitely in an MVar operation
haskell - 如何从 reflex-dom 列表框中获取 DoubleClicked 事件
以下代码将 reflex-dom 下拉元素直观地显示为列表框,并始终在底部显示最后选择(单击)的行。
我想更改此代码,因此它始终显示在底部最后双击的行!
我尝试了几件事
- 使用domEvent函数:这不起作用,因为Dropdown不是HasDomEvent类的实例。
- 在 Dropdown 记录的值_dropdown_change中过滤事件。但我没有找到任何方法来仅过滤 DoubleClick 事件。
- 使用新类型 EventSelector。我再一次看不到我可以使用它。
问题:如何获得双击事件?