问题标签 [purescript-halogen]

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.

0 投票
1 回答
99 浏览

purescript - 如何定义一个空查询类型的 eval 函数?

我有一个查询类型data Query a

鉴于Query没有构造函数,我如何定义eval类型的函数:

我必须添加一个构造函数Query吗?

0 投票
1 回答
49 浏览

purescript - 为来自 Halogen 的查询/请求获取“为表达式推断出无限类型”

在我的组件中:

主要(应用程序)组件:

编译器说:

我认为插槽和子路径都可以,因为render函数可以编译并正常工作。

如何修复此错误?我对照指南检查了几次,但我根本看不出有任何区别,而且编译器消息对我来说非常无益(对我来说)。

0 投票
1 回答
366 浏览

purescript - 在纯脚本中获取键盘事件

我想在 purescript 中获取 keydown 事件,所以我使用了 DomEvent。这是我的代码。

当我尝试运行此代码时,我收到这样的错误。

我知道 aff 和 eff 但我是 purescript 的新手,所以我不确定我必须做些什么来解决这个问题。我能做些什么?

0 投票
1 回答
223 浏览

events - 如何在 Purescript Halogen 中实现诸如自动增量计数器之类的东西

在 React 中给定一个非常简单的增量组件:

这如何转化为 Purescript 的卤素?在网上浏览了各种各样的东西,我还没有找到任何可以制作我自己原型的例子。我知道Effect.Time哪些暴露setInterval,但是我将如何使用它来触发可以让我更新状态的东西(在受控操作中,通过handleAction)。

我正在尝试将应用程序从 Elm 移至 Halogen,并且在该应用程序中,它依赖于subscriptions功能的关键位来更新与直接用户输入无关的应用程序状态。如果 Halogen 具有类似的功能(我已经看到subscribe,虽然这似乎与父/子组件之间的通信有关,但我可能误解了这一点......)最好指出它。

0 投票
1 回答
240 浏览

functional-programming - 如何在 Halogen 5 的 handleAction 函数中使用 logShow

正如标题所说,我正在尝试在我的 handleAction 函数中使用 logShow。我导入Effect.Console (logShow) 并尝试像这样使用它,每次单击按钮时:

但是我只收到以下错误,而且我不太了解,因为我对纯脚本和函数式编程完全陌生。

我很高兴有任何线索。

0 投票
1 回答
78 浏览

purescript - 如何访问 Purescript 中突出显示的文本?

我正在 Purescript 中创建一个应用程序,我想要一个显示一些文档的文本框,然后我想根据鼠标在该文本上突出显示的句子在服务器上执行一些 NLP 任务。

如何在 Purescript 中提取该文本?

0 投票
1 回答
140 浏览

purescript - 如何使焦点组件在卤素中可组合

在 Halogen 中玩一个简单的演示应用程序,其中包含一个输入字段中的值填充的动态列表,我意识到,在单击按钮后将焦点返回到输入是非常困难的。只有一种方法:定义 FFI 方法,该方法通过 DOM id 发现元素并调用焦点。Halogen 在创建时不会公开 DOM 引用。

通过 id 定位 DOM 是一种有限的方法,并且无法自行扩展。DOM id 是页面全局的。它们打破了抽象和孤立。组件不可组合!

缺少 DOM 引用不仅会影响焦点,还会影响选择。

我猜卤素不会很快解决这个问题,所以我正在寻找一种解决方法。如何使组件,中继焦点,可组合?

我认为某种分层 id 生成器会有所帮助。它为 DOM 元素生成并分配唯一的 id,同时将它们暴露给组件逻辑。

0 投票
1 回答
84 浏览

purescript - 有人能解释一下 cofree comonad 如何“类似于”卤素吗?

在论文中,声明式 UI 是未来——未来是由 Phil Friedman 提出的,他在介绍 cofree comonad 时声称:

这种说法在其他几个地方得到了回应,我假设源于这篇论文,直到最近我才把它放在我的“以后再想一想”堆上,因为我不熟悉卤素的工作原理。但是,现在我对卤素有些熟悉,我尝试更多地研究这个问题。然而,即使现在我了解了卤素的基础知识,这种说法对我来说仍然不是很明显,至少就我搜索而言,我还没有在网上找到任何地方试图详细说明或解释两者之间的这种联系cofree comonad 和卤素。

有没有人尝试过使用 cofree comonad 实际构建一个 UI 框架?如果没有,至少有人可以帮助更好地解释这个想法吗?例如,通过使用卤素中的一个组件的一些基本示例,并使用 cofree comonad 构建一个描述该组件的结构?或者更好的是,描述如何以类似于如何组合卤素组件的方式组合这些“cofree 组件”?

0 投票
1 回答
81 浏览

web-frontend - Purescript 编译但 js 抛出错误:component.initialState 不是函数

我正在使用purescript-halogen. 该组件应该显示一个只有一个输入按钮的空白 div,供用户选择一个本地文件,然后该文件将充当视频元素的源 URL。

我用纯 javascript 完成了一个工作模型,并希望将其移植到 purescript/halogen。我得到了要编译的 purescript 版本,但 Web 控制台给了我一条错误消息Uncaught TypeError: component.initialState is not a function并指向这个 MDN参考

这表明我如何定义我的 initialState 函数存在问题,但它是相当标准的:

是否有可能在其生命周期中的错误时间调用该函数,从而使其未定义?

该组件的代码托管在这个 Github gist上。我一直在关注这个 Github问题作为参考。

我的package.json

我使用purescript v0.14.0,编译并spago v0.20.0在.node v16.3.0Firefox v89.0Ubuntu 20.04.2 LTS