New FAQ article: https://day8.github.io/re-frame/FAQs/why-didnt-my-component-update/
Hmm. I don't see anything wrong with the code.
neither did I 🙂 But if I understood the situation correctly, the problem is that the subscriptions/reactions were never deferred, at least not within that subscription. https://github.com/day8/re-frame/blob/492838f859261829e1d4ff5aa0aaa91729a08816/src/re_frame/subs.cljc#L162
replacing identity with (fn [args] (println (type args))) => LazySeq 💡
Oh wow, good catch. I'd say it definitely should be mapv there.
Thanks, I've been meaning to look at that piece. There's also this issue with it - https://github.com/day8/re-frame/issues/545
Cool! Had no idea about multimethods. Yet another reason to avoid them where no openness is needed.
Yeah, but it's sad because I really like using multimethods. The first workaround isn't so bad.
I stopped liking them as soon as I had to debug them. :D Nice when you need extensibility, but a huge liability as compared to case/cond otherwise.
I found a new fun way to accidentally break updating a while ago. I did something a bit like
(rf/reg-sub ::foo-and-bar-and-quuz
(fn [_]
[(rf/subscribe [::foo])
(rf/subscribe [::bar])
(rf/subscribe [::quuz])])
:-> identity))
iow. I wanted to return a coll of the return values of those three subs. It almost worked, but not quite.