From a563275cb87b76f9507ff2ea02cdd54d8ced835c Mon Sep 17 00:00:00 2001 From: defclass Date: Sat, 6 Feb 2021 11:08:27 +0800 Subject: [PATCH] fix(react): fix react impl --- src/test/frontend/react_impl_test.cljs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/test/frontend/react_impl_test.cljs b/src/test/frontend/react_impl_test.cljs index 51780886fa..a1d3d74b61 100644 --- a/src/test/frontend/react_impl_test.cljs +++ b/src/test/frontend/react_impl_test.cljs @@ -24,16 +24,18 @@ (defn react-fn [f] {:pre [(fn? f)]} - (let [result-ref (atom nil)] - (binding [*react-fn* f] - (swap! react-defines assoc f {:result result-ref - :watches #{}}) - (reset! result-ref (f)) + (let [result-ref (atom nil) + ;; Each react-fn invoke will generate new *react-fn*, though the same f. + f' (fn [] (f))] + (binding [*react-fn* f'] + (swap! react-defines assoc f' {:result result-ref + :watches #{}}) + (reset! result-ref (f')) {:clear-state-fn - (fn [] (-> (swap! react-defines dissoc f) + (fn [] (-> (swap! react-defines dissoc f') (empty?))) :get-value-fn - (fn [] (deref (get-in @react-defines [f :result])))}))) + (fn [] (deref (get-in @react-defines [f' :result])))}))) (comment (let [react-ref (atom 1)