问题标签 [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.
reactjs - 解决 onClick 事件在 material-ui 中的“Enter Key”按下时被触发两次(错误)
我正在使用cljs-react-material-ui
from re-frame
。
当我单击 aflat-button
时,它会按预期触发:on-click
事件。但是,当我按 Tab 键聚焦按钮然后按返回时,似乎触发了两次事件。这让我的应用程序感到困惑,因为它的有限状态机已经进入下一个状态,在这种状态下(重复的)事件没有意义。
我是否需要明确地消除此事件?我本来希望 UI 框架能够几乎相同地处理单击和返回键。
javascript - Leaflet Popup 中的试剂组件 - 自定义 Leaflet Popup
我正在使用 Re-Frame 和 Reagent 构建 Clojurescript 前端。目前前端仅包含使用 Leaflet 创建的地图。单击地图时,会在该位置设置一个新标记。单击任何这些标记时,将显示一个弹出窗口。
到目前为止,一切都很好。现在的问题是我想准确地调整这个 Leaflet 弹出窗口以包含一个删除按钮,然后应该使用它再次删除标记。这是我遇到问题的地方。代码如下所示(归结为最低限度):
这也行得通。但我不想将内联 HTML 写成字符串。我想用打嗝语法编写弹出窗口的内容,然后以某种方式将其传递给“.bindPopup”。我想这样做,因为单击时将包含一些 Clojurescript,如果我只是将 HTML 内联写为字符串,我无法将其放入其中。例如,我尝试过:
(.bindPopup (reagent.dom.server/render-to-string [:div "Hello World"]))
这也可以正常工作,但是我在那里的任何点击都会在翻译中丢失。我知道这不起作用(请参阅onClick 处理程序未注册 ReactDOMServer.renderToString或React.js 服务器端渲染和事件处理程序)。
因此,我想找到另一种将我的 Reagent(仅包装 React)组件传递给 Leaflet 的方法,以便它满足弹出窗口的界面
setContent(<String|HTMLElement|Function> htmlContent)
:(https://leafletjs.com/reference-1.3.2.html#popup-setcontent )
所以基本上我想将组件呈现为 HTMLElement 而不是直接呈现到虚拟 DOM 中。我想调用试剂渲染函数并且不将结果渲染到应用程序中,而是将其作为可以传递给 Leaflet 的 HTMLElement 返回。
TLDR:如何将 Reagent 组件呈现为 HTML 元素,包括其点击功能,以便我可以将其交给 Leaflet 弹出窗口?
任何帮助表示赞赏。
clojurescript - 在 Re-frame 中挂载初始 ajax 数据
我在 re-frame 文档中看到了 Ajax 调用的示例:
我可以在主函数中调用事件吗:
加载初始值?我需要加载初始值,然后渲染视图。
更新
我使用这个功能做到了:
clojurescript - re-frame:在嵌套向量中添加新的地图元素
我的“db”中有这个结构(有序映射),关键字“:questions”:
我可以在事件处理程序“re-frame/reg-event-db”中添加一个新问题,并添加:
但我不知道如何在 ":answers" 键中添加地图。此外,我担心每次添加新答案时都会渲染所有问题。
我阅读了有关“路径”拦截器(一种“更新输入”)的信息,但我找不到有关如何使用它的示例。
clojurescript - re-frame:调度后重置原子
我有这个表格:
调度后如何将@new-question 重置为“”(空字符串)?
clojurescript - 在 re-frame 应用程序中使用 rc-animate 对 antizer 表进行动画处理
我正在尝试在http://react-component.github.io/table/examples/animation.html中重新创建示例,以将动画添加到重新框架应用程序中的表中。该表是使用antizer呈现的,它是Ant Design react 组件的ClojureScript 库。对于动画,我尝试使用rc-animate(如示例中所示),它是一个 JavaScript 库。为了集成 rc-animate,我按照官方 Webpack指南创建了一个src/js/index.js
文件:
我project.clj
的是:
在我views.cljs
的尝试中,我尝试像这样渲染表格:
我完全不确定
相当于示例中的行
该表正确呈现,但是当我尝试删除一行时,它失败并出现以下错误跟踪:
还表明:
我是 Clojure 初学者,对 React 的了解更少;这是我经过一周的尝试后最终到达的地方,但现在我觉得卡住了。我已将我的项目上传到github,供任何想尝试的人使用。
clojure - 全栈 Clojure:如何在开发过程中同时获取浏览器 REPL 和服务器 REPL
我正在开发我的第一个全栈 Clojure 应用程序。我已经设法在 Linux Mint 中正常工作:
- 莱宁根
- figwheel + garden[auto] = 带有热代码和 CSS 重载的交互式 SPA 开发
- leiningen REPL for Server with rebel-readline,在 REPL 启动服务器,并将 SPA 提供给浏览器
- leiningen uberjar 编译,jar 文件运行,SPA 由服务器服务
我不知道该怎么做是设置一个开发环境,允许我同时拥有一个服务器 REPL 和一个 SPA REPL,这样我就可以集成 sente 以支持 websocket 并监控重新构建应用程序- SPA REPL 中的数据库状态。我想,理想情况下,我想让 figwheel + gargen[auto] 与 SPA 一起运行,通过 sente websocket 与服务器通信。
clojure - Re-frame 中的 reg-event-db、reg-event-fx 和 reg-event-ctx 有什么区别?
Re-frame中有3 个事件 fns,我可以对和做同样的事情。reg-event-db
reg-event-fx
和之间reg-event-db
的主要区别是什么?reg-event-fx
reg-event-ctx
我什么时候应该使用reg-event-fx
over reg-event-db
,反之亦然。
clojurescript - 如何在 REPL 中的 re-frame 框架(clojurescript)中调度事件?
我正在使用无花果,我想从 REPL 手动调度事件。
例如,在我的应用程序连接到 REPL 之后
我收到以下错误“RuntimeException Invalid token: ::events/initialize-db”
我如何调度这些事件?以及如何在 REPL 中查看应用程序的状态?
clojurescript - 页面加载时未触发 defroute
我的routes.cljs
文件中定义了应用程序路由,位于src/cljs/project/routes.cljs
.
它被初始化为core.cljs
它被发送::events/set-active-panel
到events.cljs
并且:active-panel
订阅了subs.cljs
我订阅:active-panel
了我的layout.cljs
@active-panel
是nil
我第一次访问页面的时候。仅当我浏览页面时才调度面板。我知道这最初是有效的。我在我的提交中看不到任何可能破坏它的东西。
如何让我defroutes
在页面加载以及通过网站导航时触发?