我正在开发一个生成可视化的小型 Purescript 应用程序。然而,我的架构有点非传统,而且我遇到了一些问题。这就是我想要的:
- 启动
pulp psci -- --port 8080
并连接浏览器 - 调用一个
go
接受可视化定义并将其与一些控件一起呈现的函数 - 查看结果。回到 REPL 并可能创建一些新定义。
- 转到第 2 步并使用 绘制新的可视化
go
。
到目前为止,这种方法适用于我,但我的问题是重复调用go
不会替换 DOM 的内容,而是添加到它们中。这意味着在几次调用之后,我最终获得了所有控件和所有内容的许多副本。
我意识到这有点 hack,但是我能想到的提供这种交互式界面的唯一其他方法是实现一个编辑器/解析器,而且工作量太大有没有办法避免这种情况?
这是我对 的定义go
,我认为需要更改:
go :: Vis -> Eff (HA.HalogenEffects ()) Unit
go vis = HA.runHalogenAff do
body <- HA.awaitBody
runUI checks vis body