问题标签 [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 回答
1743 浏览

clojurescript - How to update same input field by typing and from code in reagent/re-frame?

I have a reagent component with an integer input field and two buttons "+1" and "-1". I'd like to make it possible for the user to:

  • enter an integer value directly in the input field
  • click on "+1" to increment the value in the input field by 1
  • click on "-1" to decrement the value in the input field by 1

In addition, when using re-frame, I'd like to be able to

  • save the value to re-frame's app db after it's entered or adjusted by clicking on one of the buttons
  • update the value of the input field if it changes in re-frame's app db (for example, after we fetch the value from some API server)

How would I go about doing that?

0 投票
1 回答
668 浏览

clojurescript - 如何使用 Re-frame 订阅和处理程序将更改推送到 Reagent 组件?

考虑以下假设的、简化的 clojurescript 片段:

content 函数准备一个 Reagent 组件。代码片段按预期工作。(“选择”函数是 Spectre 库的一部分。)

我想添加最小的重新框架代码,以便当 cat atom 更改时,例如使用 REPL 中的函数,浏览器中的 React.js 组件会更改。我知道关于重新构建订阅和处理程序的理论,但只是在理论上,因为我无法让它在这样一个最小的例子中工作。它是如何完成的?如何使用 Re-frame 订阅和处理程序将更改推送到 Reagent 组件?

0 投票
2 回答
134 浏览

clojure - Why is the ^ character used in this ClojureScript snippet?

In the clojurescript re-frame todomvc application we find the following snippet in the todomvc.views namespace.

Although I have read the Clojure chapter on metadata I don't quite understand the purpose of:

in the snippet above. Please explain.

0 投票
3 回答
3094 浏览

clojure - 如何在重新框架中遍历订阅的集合并将数据显示为列表项?

考虑以下 clojurescript 代码,其中使用了 spectre、reagent 和 re-frame 框架,外部 React.js 网格组件用作视图组件。

在 db.cls 中:

在 subs.cls

选择结果:

在views.cls

上面的代码按预期工作。

我不想使用 react.js 组件显示数据,而是想遍历 :cats 向量中的每个映射并在 html ul / li 中显示 :text 项。

我开始如下:

预期输出:

如何在重新框架中遍历订阅的集合并将数据显示为列表项?(=标题问题)。

0 投票
1 回答
148 浏览

clojure - 为什么在 re-frame todomvc 应用程序中使用这个 def?

请参阅 re-frame todomvc视图命名空间:

该文件包含以下定义

这是从 todo-item 函数调用的。

我知道'component-did-mount'是react.js组件生命周期中的一个阶段,但我不明白这个def的目的和含义。为什么有必要?

请解释。

0 投票
1 回答
96 浏览

clojure - re-frame todomvc app todo-item 函数中的 % 字符是什么意思?

re-frame todomvc 视图命名空间包含一个函数 todo-item,其中包含以下代码段:

:on-save 键被传递给并在包含以下代码段的 todo-input 函数中使用:

第一个片段中 % 字符的含义是什么:

以及我应该如何在第二个片段中解释:

?

在此处找到todomvc 视图命名空间。

0 投票
2 回答
342 浏览

clojure - 使用试剂和重新框架时如何在粗略类型的应用程序中实现撤消和重做?

尽管在 re-frame 主页上显示“保存和撤消变得非常容易。”,re-frame 示例应用程序“todomvc”没有实现撤消/重做功能的代码。

当使用像 Java 这样的 OO 语言时,通常的做法是通过使用命令接口执行操作来实现撤消/重做,将这些操作与其“逆”一起存储,并从存储的命令对象的集合中(重新)执行这些操作。

虽然我已经阅读了常见 OO 设计模式的 Clojure 等效页面,包括此处的命令。在某些示例或应用程序中查看使用试剂实现撤消/重做,重新构建框架会很有帮助。

Q.在crud类型的应用程序中使用reagent和re-frame时如何实现undo和redo?

0 投票
2 回答
320 浏览

clojure - clojurescript/reagent for function 不起作用

我最近为我的 clojurescript 项目使用了试剂和重新框架,但我遇到了一个问题:所以我有 html 自定义标签

我想使用 cljs 将它们交换到我的试剂生成的 html 中

但它不起作用,我尝试在不使用 for 函数的情况下对其进行测试

它只用一个标签就可以正常工作。

而且我不知道为什么 for 功能不起作用,或者试剂不起作用?有人有建议吗?

我对此很菜鸟。

0 投票
1 回答
650 浏览

clojurescript - 重新框架:订阅未按预期工作

从 re-frame 开始并且有一个(可能非常基本的)混淆点。

我有一个订阅:

此 Form-2 组件使用:

我的 app-db 有有效数据,{:votes ... 是地图向量,每个地图都有一个 :id 参数,{:current-vote 是一个数字。

我知道 get-vote-by-id 有效:

如果我将 (get-vote-by-id votes cv) 中的 cv 替换为一个常数:(get-vote-by-id votes 2),那么它就可以工作。但除此之外, (get-vote-by-id ...) 正在评估一个空向量 []。

任何帮助表示赞赏,并提前感谢!

这表明 get-vote-by-id 传递了正确的值(用于投票的向量和用于 id 的数字):

按 ID 投票

0 投票
2 回答
1006 浏览

javascript - 将秘书 URL 参数广播到试剂组件的正确方法是什么

我正在re-frame default template之上构建一个应用程序。

我有以下秘书路线:

我想id从我的试剂组件中的 URL 访问参数。我发现实现它的唯一方法是将其设置为db. 就像是:

这肯定会污染我的数据库,这种方法对我来说似乎很奇怪,因为我曾经在 react 中写过这样的东西(使用react-router):

那么将秘书URL参数广播到试剂组件的正确方法是什么?

UPD:在评论中有一个关于这个问题的github 讨论的链接。一个是指将 URL 参数设置为 db 作为正确的方法。反正我不是很喜欢。它会导致更多的复杂性(设置参数,订阅它们,取消设置)。而且我不喜欢将 URL 参数视为应用程序状态。有什么黑客或什么吗?