问题标签 [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 - 在 react js 中使用试剂组件的最佳方法是什么?
假设我有一个带有 :reagent-render 其他试剂类/元素的试剂类,我如何将其转换并导出为可以安装到常规反应应用程序的常规反应组件?
clojure - clojurescript/reagent for function 不起作用
我最近为我的 clojurescript 项目使用了试剂和重新框架,但我遇到了一个问题:所以我有 html 自定义标签
我想使用 cljs 将它们交换到我的试剂生成的 html 中
但它不起作用,我尝试在不使用 for 函数的情况下对其进行测试
它只用一个标签就可以正常工作。
而且我不知道为什么 for 功能不起作用,或者试剂不起作用?有人有建议吗?
我对此很菜鸟。
clojurescript - Using Draft.js with Reagent
Does anyone have any luck adapting Draft.js for Reagent? There's pretty heavy editing issues if Draft.js is imported right away via reagent/adapt-react-class
. Cursor jumps, disappearing symbols when you're typing, onChange
calls with incorrect EditorState
, you name it.
People are reporting problems like this in clojurians/reagent Slack channel, but it seems there's no solution so far.
Any help would be greatly appreciated.
clojurescript - 如何使用试剂在 clojurescript 中执行 ajax 请求?
假设我有一个组件需要在渲染之前从服务器请求一些数据。
我现在拥有的类似于cljs-ajax
图书馆:
setup
函数是一些有副作用的国外JS库函数 。
这行得通,但我觉得这不是进行回调的正确方法。更不用说我是否需要GET
基于我获得的第一个数据的其他数据,然后基于此的其他数据,这将是一个非常讨厌的回调链。
在试剂/clojurescript 中执行这种 ajax 请求是否有更好、更干净的方法?
clojurescript - 使用无限序列作为参数创建元素的试剂
基于此在更多平等部分,是否仍然可以创建一个接受无限序列作为参数的组件?
reactjs - 试剂原子/组件仅重新渲染一次
我创建了一个脚注系统,使用建立在语义 ui(仅限 css)之上的试剂(对于任何阅读 javascript 的人来说,这是一个 clojurescript 包装器),它处理点击和键盘事件以及鼠标悬停。除了一件小事之外,一切都完美无缺:它只正确处理一次键盘事件,然后就失败了。
代码在底部,但有点复杂,所以在展示之前我会解释一下。
所有原子都是试剂原子。入口点是footnote
,它是一个获取脚注文本以及页面标记(不相关)的组件。
footnote
及其下游功能:
从全局状态中获取一个计数器值,将其递增,并将其用作脚注的数字,
创建一些局部状态(试剂原子)来控制包含文本的模态是否可见,并将其初始化为 false,
将带有工具提示的上标脚注标识符附加到文本(用于鼠标悬停)
将单击事件处理程序附加到该脚注标识符,它将模态可见性原子设置为 true,并且
将键盘事件侦听器附加到全局窗口,当按下数字时,它将模态可见性原子设置为 true。
然后,当模态可见性原子为真时:
另一个键盘事件侦听器附加到全局窗口,它将模态可见性原子设置为 false。
一个点击监听器附加到模态本身(在一些地方,因为我在 DOM 上很烂,并且不相信我有能力找出一个可能点击的位置),还将模态可见性原子设置为 false。
我认为应该发生的事情:
在渲染时,鼠标悬停应显示带有文本的工具提示,单击脚注编号或按键盘上的脚注编号应打开带有文本的模式。当模式打开时,单击任意位置应将其关闭,按任意键也应如此。关闭模式后,用户应该能够通过单击或按键盘上的数字再次打开它。
实际发生的情况:
除了上一段中的斜体字之外的所有内容。相反,在关闭模式后,如果我按相应的键再次打开它,模式不会重新打开(单击仍然有效)。
当我包装密钥处理函数调试日志调用时,它会将“true”记录到控制台,表明原子处于预期状态。
有趣的是,通过点击刷新或仅通过渲染重新渲染整个虚拟“页面”(即包含脚注组件的更高级别的组件 - 这是一个具有虚拟页面作为反应/试剂组件的单页面站点)另一个包含不同/没有脚注的“页面”组件然后重新渲染原始的“页面”组件,似乎重置了我得到的任何一种不稳定的状态,并且键盘触发器再次工作。
相关地,我在全局窗口上挂着其他键盘事件,但没有使用与脚注相同的击键。特别是,我有用于在“页面”之间导航的键盘事件(h 表示主页等)。有趣的是,如果我使用其他键之一关闭模式,它工作得很好——很可能是因为其他键首先重新呈现其他页面之一,然后根据我的强制重新呈现呈现原始页面?
下面的代码(从我最初发布此问题时修改)试图通过重新渲染原始页面(即 )来利用最后一个怪癖navload
,但没有骰子(可能是因为 react 足够聪明,不会重新渲染页面,如果它已经在那里了吗?)。
我还尝试通过首先渲染一个虚拟页面然后立即再次渲染原始页面来强制在关闭功能中重新渲染,但没有骰子——这实际上使事情变得更糟(重新渲染不再重置键盘脚注容量.)
最后,我尝试了包括reagent/force-update-all
inclose-modal
以及this issue中的“强制”技巧。两者都没有导致行为的任何改变。
其他可能相关的信息:
该listen
函数来自 google 闭包库 ( goog.events
),而不是普通的 javascript。不知道这是否具有奇怪的语义或可能导致此问题的东西。
有没有人有任何精彩的见解?谢谢!:-)
reactjs - Controlled React components in Reagent
I want to make checkbox group where one of checkboxes is aimed to control other. That special one will be used as "select all".
Here is my idea (which is partly working):
And it works at the first sight - when you check first (the special one) it also check others, if you uncheck first it uncheck others, if you check all the other by hand, special one will be check too.
So, what is the problem then?
Reagent fires following warning when I first time check one of checkboxes.
I've followed the link and found the story about Reacts controlled and uncontrolled components. I'm not a React connoisseur and it's not clear to me how could I make checkboxes checked only manipulating value
property of input
(if I understood the suggestion given here).
I definitely want to make checkboxes both available for manual change and controlled by state of example-data
.
Some clarification or an example from most experienced React/Reagent users are needed, I'm not experienced at all and all the comments are welcome.
reactjs - ClojureScript:如何使用 Reagent 反应性地更改 CodeMirror
我试图在我的网页中嵌入一个 CodeMirror 来编辑几个代码片段,一次一个。
为此,我:
node-defs-atom
拥有一个包含代码片段图的Reagent atom 。- 有另一个原子
node-history-atom
,其中包含正在查看的片段的键 - 将 CodeMirror 的值设置为键处的代码映射的值。
这是不起作用的:
更改node-history-atom
withreset!
对 CodeMirror 中的文本没有任何作用。我真的不确定出了什么问题。
如果有人能告诉我应该在哪里引用,(@node-defs-atom (last @node-history-atom))
我将不胜感激。
提前致谢!
charts - 如何使用 ClojureScript 中的新数据更新图表专家图表?
我是 ClojureScript 的新手,我正在尝试使用新数据更新图表。我正在使用 Chartist 和 Reagent。第一次渲染图表可以正常工作,但是如果我更改了 chartist 函数的数据,图表就不会再次渲染。我已经用 atom 尝试过不同的东西,并尝试使用 chartist 的更新功能。这是chartist更新api的链接
到目前为止,这是我的代码:
如果有人可以提供帮助,那就太好了。
更新:我通过在我的项目中添加无花果来修复它,不知何故这解决了问题并且图表得到更新。最后我还使用了component-did-update下Chartist的更新功能。这是无花果的链接https://github.com/bhauman/lein-figwheel
reactjs - Clojurescript,试剂:将原子作为输入向下传递,还是用作全局变量?
我正在编写一个 Clojurescript 应用程序,使用 Reagent 使我的组件具有反应性。
我有一个简单的问题。我是不是该
- 通过我的组件传递我的原子作为输入,或者
- 将原子用作全局变量并让它们“影响”我的组件?
在本教程中,他们使用后一种选项,但是为了保持我的功能纯净,我选择了前一种。
我是否正确地说将它们用作全局变量(除了在定义组件输入时不那么冗长)可以防止重新渲染未使用原子状态的整个父组件?