【问题标题】:Re-frame, reagent component life cycle and figwheel重构、试剂组件生命周期和无花果
【发布时间】:2015-10-27 18:09:50
【问题描述】:

我正在尝试同时学习很多东西,所以我的问题可能有点偏离目标。

我用 lein 创建了一个 re-frame-template 项目,并且我有我的默认主要组件:

(defn main-panel []
  (let [name (subscribe [:name])]
    (fn [] [:div [:h1 @name]])))

我想为按键添加一个事件侦听器,但我无法正确地做到这一点:如果我只在:component-did-mount 中设置(使用 domina)(listen! ...),则在每个无花果轮上重新加载一个新的偶数侦听器被添加到旧的。如果我在component-will-unmount 中设置unlisten!,我在按键上没有得到任何结果。

我注意到,每次重新加载无花果时,:component-will-unmount 都会在 :component-did-mount 之后立即触发!

我做错了什么?

谢谢!

【问题讨论】:

    标签: reagent figwheel re-frame


    【解决方案1】:

    好的,我发现了我的错误。 我不得不用with-meta 调用反应“方法”。

    所以,例如:

    (with-meta myComponent {:component-did-mount #(ev/listen! ...)
                            :component-will-unmount #(ev/unlisten! ...)})
    

    【讨论】:

    • 不要使用 with-meta。很笨拙。 github.com/Day8/re-frame/wiki/…
    • 嗯谢谢你的链接!为什么你觉得它很笨拙?那个 form-3 看起来非常冗长!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    • 1970-01-01
    • 2019-02-25
    • 2018-05-02
    • 1970-01-01
    • 2017-10-17
    相关资源
    最近更新 更多