- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们将 Chart.js 与 clojurescript 和 Reagent 一起使用。现在我知道 Chart.js 有一个 Chart.update() 方法来用新数据更新图表。所以问题是,如何设置我的组件,以便它在 :reagent-render 上渲染图表,但可能得到 :component-will-update 来调用 Chart.update() 方法?
基本上,有没有办法获取从 :component-will-update 函数中的 :reagent-render 函数创建的图表的句柄?
最佳答案
在这种情况下,您遵循的通常模式是将有状态/可变对象包装在 React 组件中并使用 React 的生命周期方法。
re-frame
的 Using-Stateful-JS-Component 详细描述了该方法。但这就是我在 D3 中倾向于这样做的方式:
(defn graph-render [graph-attrs graph-data]
;; return hiccup for the graph here
(let [width (:width graph-attrs)
height (:height graph-attrs)]
[:svg {:width width :height height}
[:g.graph]]))
(defn graph-component [graph-attrs graph-data]
(r/create-class
{:display-name "graph"
:reagent-render graph-render
:component-did-update (fn [this]
(let [[_ graph-attrs graph-data] (r/argv this)]
(update! graph-attrs graph-data)))
:component-did-mount (fn [this]
(let [[_ graph-attrs graph-data] (r/argv this)]
(init! graph-attrs graph-data)))}))
(defn container []
[:div {:id "graph-container"}
[graph-component
@graph-attrs-ratom
@graph-data-ratom]])
保留外部/内部组合非常重要,否则 React 将无法正确填充其 props。
另一件需要注意的事情是 reagent/argv
向量的返回,正如您所看到的,它包含第一个项目之后的 Prop 。我在上面的 wiki 页面中看到过(reagent/props comp)
,但我自己从未尝试过。
关于chart.js - Clojurescript/Reagent/Chart.js - 试剂生命周期 - Chart.update(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47230863/
我正在尝试将初始焦点设置在输入元素上 (defn initial-focus-wrapper [element] (with-meta element {:component-did-mo
我有一个 html Canvas ,想在上面显示 Quil 草图。大多数 Quil 示例使用 defsketch 在静态 html 页面上定义的 Canvas 上进行绘制。我想在这个试剂组件中的 Ca
我有一个 html Canvas ,想在上面显示 Quil 草图。大多数 Quil 示例使用 defsketch 在静态 html 页面上定义的 Canvas 上进行绘制。我想在这个试剂组件中的 Ca
我正在尝试通过一个简单的绘图程序来掌握 clojurescript 中的试剂。 我正在寻找一个示例,说明如何使用 Reagi 以有原则的“FRP”风格访问鼠标位置。 . 在各种试剂示例中,我可以看到如
所以签名为component-will-receive-props就是这样: https://github.com/reagent-project/reagent/blob/master/src/re
我从 here 复制了一个两年前的要点.它现在与 Figwheel 一起工作,并使用更新版本的 Reagent/React。 我正在寻找一种通用方法来隔离出现在 Javascript 控制台中的此警告
如何将不同的 React 版本与 Reagent、Om、Rum、Quiescent 或 Brutha 一起使用? 最佳答案 self 回答,因为这个问题经常被问到: 首先,您必须告诉 Leininge
我是一名优秀的程序员,十分优秀!