奇怪的是,当我将组件定义为以钩子为元数据的函数时,就不会调用组件-生命周期函数(示例就像我看到的示例一样容易)。
(defn my-callback [this] (println (.-innerHTML (reagent/dom-node this))))
(defn inner-compo []
[:p "content"])
(defn my-compo []
(with-meta inner-compo
{ :component-did-mount my-callback })
)当我用reagent/create-class创建组件时,它工作得很好。我用的是试剂0.6.1。
解决方案发现:您需要将组件定义为Var而不是函数:
(def my-compo
(with-meta inner-compo
{ :component-did-mount my-callback })
)那就很好了-很奇怪。
如果有人能解释原因呢?
你好,弗里克
发布于 2017-04-24 15:40:21
第一次尝试不起作用,因为元信息对应于返回值(从外部无法看到),而在第二次尝试中,它对应于值本身(并且可以看到)。
通常,当您有render之外的任何方法时,最好使用完整的组件语法:
(reagent/create-class
{:component-did-mount function...
:component-will-mount function...
:reagent-render render-function...是的,它要详细得多,但至少你可以立即说出正在发生的事情。
https://stackoverflow.com/questions/43585197
复制相似问题