问题标签 [re-frame]

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 回答
38 浏览

clojurescript - 多面板重构未按预期工作

我有以下重构代码:

基本上,主(默认)面板中有一个按钮,单击该按钮时应该会到达 :another 面板,但它会在“nil”面板和 :another 面板之间闪烁。我究竟做错了什么?

0 投票
1 回答
179 浏览

clojurescript - 为什么 db 在 reframe 中打印 #object[Object [object Object]]?

在下面的代码中,我调度了两个点击事件:

但是不是打印数据库映射,而是打印"The db is" #object[Object [object Object]],然后

我究竟做错了什么?我也尝试过,#(dispatch [:some :some-val :another another-val]但这给出了同样的错误。一般来说,如何正确调度两个事件?

0 投票
1 回答
298 浏览

clojure - 如何根据 uri 在 reframe 中提供正确的面板?

我为我的应用程序定义了几个面板,如下所示:

我可以在客户端使用 bidi+pushy 推送路由,例如 /panel1-uri 当事件(在本例中为单击)发生时,并使用调度更改面板。但是当我直接通过浏览器访问 localhost:5000/panel1-uri 时,这不起作用,因为 /panel1-uri 路由在服务器中不存在。

所以我在我的服务器 /panel1-uri 中创建了一个路由,它只为 index.html 提供服务,并在该路由响应的标题中添加我想要显示的面板的键。然后我为 localhost:5000/panel1-uri 创建一个锚点 href,而不是调度一个事件(推送 /panel1-uri),但是当然,这仍然为默认面板提供服务。但是,我通过单击 href 收到的响应确实在其标题中包含正确的面板键。单击 href 后如何访问从响应中收到的此标头并使用它来更改面板?

或者,是否有更好的方法来解决服务 uri 的问题,不仅可以处理客户端中的事件,还可以直接输入到浏览器中?

0 投票
0 回答
152 浏览

css - 组件在re-frame中显示时如何添加动画效果?

我有一个包含在 if 中的组件,如下所示:

我想在 show-me div 显示后立即应用动画,即当条件为真时。现在,我知道如何使用选择器(如 :hover 和 :active)在 ​​css 中应用转换,例如:

悬停时将缩放 div。

但是,例如,如何在 div 显示后立即对其进行缩放?

0 投票
3 回答
235 浏览

react-native - 将原子作为函数参数传递时的试剂性能问题

我使用 Clojurescript re-frame 和试剂处理本机应用程序。我有一个文本输入组件,并且有两个版本的代码:

版本 1:输入文本是一个单独的组件,状态原子作为参数传递,与试剂库文档和示例中推荐的相同。

版本 2:一个组件中的所有内容。

问题是第一个版本在打字时存在性能问题,因为在尝试快速打字时会有很大的延迟和闪烁。版本 2 没有任何问题,我可以尽可能快地打字。

根据试剂文档,将 r/atom 作为参数传递不应引起任何性能问题。

我在这里做错了吗?在这里避免性能损失的最佳方法是什么。

这是一个小例子,使用一个组件而不是两个组件并不是什么大问题,但是在良好的实践中将一个大组件拆分为多个较小的组件。这里的状态是组件本地的,我不想为它使用 re-frame。

0 投票
1 回答
124 浏览

clojurescript - 在重新框架中选择/取消选择复选框

我正在向我的app-db添加一个搜索 id 元素:

但我不知道如何识别最终用户何时选中或取消选中该框以便从 app-db 放置或取出元素。我想避免在 app-db 中搜索以查看该元素是否已经存在。

0 投票
0 回答
131 浏览

clojurescript - 重新框架调度和订阅在 repl 和测试文件中不起作用

我有一个重新设计的项目,并且我的事件、subs 和 db cljs 文件已被填充。我在我的项目中使用这三个并且效果很好。但是我创建了一个测试文件,并在其中调用了 subscribe 和 dispatch ,如下所示:

那是行不通的。我明白了

另一方面,如果我尝试在 shadow-cljs repl 中运行 subscribe,我会收到以下错误:

如何解决这两个错误?

0 投票
1 回答
652 浏览

clojurescript - 未能构造“HTMLElement”:请使用“新”运算符

我正在尝试在重新构建应用程序中使用 AWS Amplify 身份验证库。该库提供了一个更高阶的组件withAuthenticator,它应该包装您的应用程序的主视图。我正在尝试使用reactify-componentadapt-react-class但不幸的是我收到以下错误:

未捕获的类型错误:无法构造“HTMLElement”:请使用“新”运算符,此 DOM 对象构造函数不能作为函数调用。

任何帮助表示赞赏

0 投票
1 回答
785 浏览

clojurescript - 如何在 ClojureScript 中使用 React 库

我试图在我的re-frame/reagent/leiningen项目中使用cljsjs/vis,但是在将此库导入命名空间时出现错误。

尝试使用其他库进行图表/数据可视化,但结果仍然相同。将 JS 库导入 clojurescript 项目似乎有问题。

莱宁根project.cljs文件

cljs文件

0 投票
1 回答
283 浏览

clojurescript - 试剂组件不会在道具更改时重新渲染

我的 Reagent 组件是一个简单的 div,它有一个component-did-mount和一个component-did-update钩子。它使用 vexflow 绘制笔记。

它是这样使用的。

我的事件代码如下。

我验证了 app-db 值使用 10 倍变化。然而,当热重载启动时,注释栏只显示不同的注释。我相信这是由于component-did-update未调用挂钩。

我的问题是,这是绑定呈现某些内容的 JavaScript 库的正确方法吗?如果是这样,为什么我的组件没有更新?