I think you will either have to do that within the reactive definition for df, add the ID in the client of df(), or create a new reactive based on df, e.g.
Yes, this does seem to work. I didn't pick up that this was the answer to problems like these after watching all the tutorials on the internet. Seems to be a very important concept. Thanks for sharing.