问题标签 [reagent]
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.
clojurescript - 在 ClojureScript 中,让 go-loop 运行直到它的通道被耗尽
我正在使用的一个库,re-frame,使用go-loop 来处理事件。在我正在编写的 ClojureScript 函数中,我需要停止并等待该通道耗尽,即所有事件都已处理(包括在事件处理期间生成的事件)。
我该怎么做?
一点上下文。我正在编写一个用于单页应用程序的服务器端渲染的库,并且我已经准备好在 NodeJS 中运行该应用程序,问题是我或多或少地这样做了:
事件处理程序:get-data-needed-to-render
将触发一个或多个 AJAX 请求到服务器以获取渲染应用程序所需的数据,即reagent/render-to-string
.
java - 为什么 figwheel 不将编译后的应用程序传递给浏览器?
我正在使用 Leiningen 2.5.2(Java 1.8.0_45-internal Open JDK 64-bit)和试剂模板(即lein new reagent foo
)。
这可以lein figwheel
按预期运行。
接下来,我要做的第一件事是将“视图”函数分解为单独的文件并将它们添加到应用程序命名空间:
core.cljs 片段:
home-page.cljs(整个文件):
当我在浏览器(铬或火狐)中查看应用程序时,它卡在“ClojureScript 尚未编译!” 尽管看似在终端中成功编译。如果我在 figwheel REPL 中输入命令,当它在浏览器中运行时,我会看到绿色的 Clojure 徽标,因此我知道它已连接。
几个月前我在一个试剂应用程序中工作过——发生了什么?我应该如何分离我的视图代码?(单个文件是无法管理的;这是很多打嗝。)
clojure - 试剂中的交互式列表
我想创建一个默认隐藏的 html 元素列表(包括查询结果),但用户可以切换该状态。我在下面尝试了几种不同的方法作为玩具示例,但都无法正常工作。
这段代码正确地创建了三个按钮,它们正确地改变了 exps 状态,但它们永远不会隐藏内容。
另一方面,下面的代码将只创建一个元素,但它可以正常工作。
编辑:可能相关: https ://github.com/reagent-project/reagent/wiki/Beware-Event-Handlers-Returning-False
clojurescript - 如何检测试剂中的“Enter”按键?
给定以下代码:
如何更改if
条件以使输入按键与普通按键区分开来?e
除了中的所有属性target
似乎都是空的。
clojure - 试剂形式是否意味着与重新框架一起使用?
我正在构建一个带有 re-frame 的应用程序,我想知道 reagent-form 是否意味着要与 re-frame 一起使用,因为 reagent-form 会带来与 re-frame 不同的处理状态的自己的方式.
clojurescript - 如何在 Reagent(Clojurescript) 中将焦点从一个元素传递到另一个元素?
我正在尝试使用reagent编写可重复使用的标签控件。我需要做的是在用户单击祖先 div 元素后聚焦输入字段。更清楚地说,我想在用户单击带有类表单元素的div 后,将焦点放在带有类标签输入的输入上 我该如何实现呢?
reactjs - 没有缩小 React 库的试剂构建
我想得到一个比这个更有帮助的例外:
我正在尝试构建一个没有通常缩小的 React JavaScript 库的 Reagent 应用程序。到目前为止,这是我对project.clj
文件的了解:
到目前为止,我已经将重要的(是吗?):optimizations :none
放在 lein 项目文件的几个地方,但总是包含缩小的 React 库。
稍后……嗯,我现在很确定我应该看看这些文物。这里介绍了什么:optimizations
意思:https ://github.com/clojure/clojurescript/wiki/Quick-Start :让优化摆脱“goog”是未定义的错误消息。
所以我现在使用这个:
,这很重要,因为它(明确地)显示试剂库包含反应库,并且可以修改此反应库。现在只是为了找出如何获得非缩小版本,我将能够回答我自己的问题......
clojurescript - 为什么试剂不会在状态更改时重新呈现我的试剂表格
我需要创建一个包含选择字段的表单,其中选项取决于当前可用的邮件帐户。页面加载后,我在 API 请求中检索这些邮件帐户。
以下函数使用 select 元素创建表单。
这pprint
给了我以下输出:
我的问题是我页面上的选择保持为空,就好像选择没有重新呈现一样。
附录
我想我忘了添加一些代码:我将此表单包装在一个 KIOO 组件中,我在其中取消引用我的state
原子。
然后该组件调用我的render-mail-account-select
函数,并应正确重新呈现表单。
clojure - 为什么多种方法不能作为 Reagent/Re-frame 的功能?
在我正在构建的一个使用 Reagent 和 Re-frame 的小型应用程序中,我使用多种方法来调度应该根据应用程序状态中的值显示哪个页面:
然后我有如下方法:
该register-page
函数将生成实际视图的位置:
我尝试更改我的应用程序,以便方法直接生成页面,如下所示:
这导致没有页面被渲染。在我的主面板中,我将调用更改pages
为方括号,以便 Reagent 可以看到它:
这会导致第一个访问的页面正常工作,但在那之后,单击链接(导致当前路由更改)没有任何效果。
在首先加载的文件中需要定义各个方法的所有命名空间,该文件包含 init 函数,并且我可以选择任何单个页面并显示它的事实证明代码正在加载(然后,切换到另一个页面不会不工作):
https://github.com/carouselapps/ninjatools/blob/master/src/cljs/ninjatools/core.cljs#L8-L12
为了调试正在发生的事情,我定义了两条路线,:about
并且:about2
,一条作为函数,一条作为方法:
并使布局打印调用的结果pages
(当然必须使用显式调用而不是方括号)。包装的函数,一个有效的函数,返回:
而方法返回:
如果我将方法更改为:
也就是说,在向量中返回函数,然后它开始工作。如果我对包装函数进行反向更改,它会以与方法相同的方式开始失败:
像 Reagent 的语法一样有点道理,[function]
但它应该自动调用该函数。
我也开始输出@current-route
到浏览器,如下所示:
并且我验证@current-route
正在正确修改并且输出更新,只是没有[pages @current-route]
。
我的应用程序的完整源代码可以在这里找到:https ://github.com/carouselapps/ninjatools/tree/multi-methods
clojurescript - 试剂画布上的羽毛笔素描
我有一个 html 画布,想在上面显示一个 Quil 草图。大多数 Quil 示例用于defsketch
在静态 html 页面上定义的画布上绘图。我想在这个 Reagent 组件中的画布上做它:
我发现做这类事情的最佳文档是here,但我不太清楚如何进入下一个级别并将其应用到上面的画布上。在上面的画布上画一条线的实际代码会很棒。
实际上,静态且始终运行defsketch
就可以了-困难在于让它访问这种动态的画布。
如果它不能完成,那么很高兴知道,我将直接使用 Processing.js,假设这是下一个最好的主意。