gpt4 book ai didi

javascript - Reagent 不会在 let 内部使用 deref-ing 重新渲染组件

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:58:54 25 4
gpt4 key购买 nike

我有原子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 后仅更新第二段。

为什么会这样?

最佳答案

来自关于 Form-2 组件的重构文档:https://github.com/Day8/re-frame/wiki/Creating-Reagent-Components#form-2--a-function-returning-a-function .

需要在内层函数中再次重复外层函数参数:

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

关于javascript - Reagent 不会在 let 内部使用 deref-ing 重新渲染组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46351387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com