Reagent and DOM-based Functions



Closure and other libraries have many great functions. Some just work – string formatting, auto-complete, etc; however, others expect to receive a DOM object and will then set up a watcher on that object. Every time I run in to one of these I have to stop and figure out how to handle it in a way that the function won’t attempt to set up the listener until after that DOM object has been rendered. Examples would be things needing modals or anything that receives a ByID-retrieved DOM object. What are the best ways to handle these DOM-dependent listener functions in Reagent?


Use the :ref attribute to get a reference to your DOM element.



Here’s the same from Reagent’s documentation:

Note that the atom in the link doesn’t have to be a ratom (reagent.core/atom) but can be a regular clojure atom (clojure.core/atom).