Open charles-dyfis-net opened 7 years ago
Given the following setup:
(require '[datascript.core :as d]) (def test-schema {:db/ident {:db/unique :db.unique/identity}, :one/name {:db/cardinality :db.cardinality/one}, :one/parts {:db/valueType :db.type/ref, :db/cardinality :db.cardinality/many, :db/isComponent true}, :two/name {:db/cardinality :db.cardinality/one}}) (def conn (d/create-conn test-schema)) (d/transact! conn [ {:db/id -1, :one/name "Hello", :one/parts -2}, {:db/id -2, :two/name "World"} ])
...and the following ultra-minimal view:
(require '[posh.reagent :as p]) (require '[reagent.core :as r]) (require '[goog.dom :as gdom]) (p/posh! conn) (defn app [conn] (let [state @(p/pull conn '[*] 1)] [:div (pr-str state)])) (r/render-component [app conn] (gdom/getElement "app"))
...the view then contains both elements:
{:db/id 1, :one/name "Hello", :one/parts [{:db/id 2, :two/name "World"}]}
...and is correctly rerendered when the following transaction occurs:
(d/transact! conn [{:db/id 1, :one/name "Goodbye"}])
...but not this one:
(d/transact! conn [{:db/id 2, :two/name "Y'all"}])
I'm having this problem as well. I pull a deeply nested structure, but updating something down the tree, doesn't kick off a reaction.
Given the following setup:
...and the following ultra-minimal view:
...the view then contains both elements:
...and is correctly rerendered when the following transaction occurs:
...but not this one: