From 2d7c2bcc5efd10ec7b49e78d4a70a7383c5b0eaa Mon Sep 17 00:00:00 2001 From: Nikhil Rao Date: Tue, 25 Apr 2023 09:51:37 -0700 Subject: [PATCH] Fix dynamic setters (#866) --- pynecone/state.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pynecone/state.py b/pynecone/state.py index e93497a0f..5c8885599 100644 --- a/pynecone/state.py +++ b/pynecone/state.py @@ -183,6 +183,7 @@ class State(Base, ABC, extra=pydantic.Extra.allow): **cls.computed_vars, } cls.computed_var_dependencies = {} + cls.event_handlers = {} # Setup the base vars at the class level. for prop in cls.base_vars.values(): @@ -196,9 +197,10 @@ class State(Base, ABC, extra=pydantic.Extra.allow): and isinstance(fn, Callable) and not isinstance(fn, EventHandler) } - cls.event_handlers = {name: EventHandler(fn=fn) for name, fn in events.items()} - for name, event_handler in cls.event_handlers.items(): - setattr(cls, name, event_handler) + for name, fn in events.items(): + handler = EventHandler(fn=fn) + cls.event_handlers[name] = handler + setattr(cls, name, handler) @classmethod @functools.lru_cache()