Working with on-demand rendering loop

I have created a component for react-babylonjs that listens to movements and animations.
in my own app (not react-babylonjs) i had a similar issue as yours. I made a global variable that I could change to force a rerender. something like:

let isForced = false

....
if(isChangesInScene || isForced){  
  isForced = false .... 
} 

....
function forceRender() { isForced = true }

some inspiration for render on demand

related thread: What is the correct way to render on demand - #22 by samevision
little video: Render on Demand by dennemark · Pull Request #253 · brianzinn/react-babylonjs · GitHub