试剂不重新渲染包含let中deref的组件

3

我有一个名为foo的原子:

(defonce foo (r/atom "foo"))

我有一个父组件:

(defn parent-component []
  (js/setTimeout #(reset! foo "bar") 5000)
  (child-component {:foo foo}))

我有一个子组件:

(defn child-component [props]
  (let [derefed (deref (:foo props))]
    (fn []
      [:div
       [:p derefed]
       [:p (deref (:foo props))]])))

重置foo后,只有第二段落被更新。
为什么会这样?
1个回答

5

请注意,当您使用 re-frame 及其订阅时,无需为此类情况使用 form-2 组件:https://github.com/Day8/re-frame/issues/218 - Juraj Martinka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接