![](/img/trans.png)
[英]Child component doesn't rerender but parent component does rerender. How to make child component rerender?
[英]Reagent doesn't rerender component with deref-ing inside of let
我有原子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))]])))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.