From e70c1497526324f84af8718ffbd0b373aad6ffcb Mon Sep 17 00:00:00 2001 From: benedikt-bartscher <31854409+benedikt-bartscher@users.noreply.github.com> Date: Wed, 28 Feb 2024 23:55:22 +0100 Subject: [PATCH] call default_factorys on State.reset (#2749) --- reflex/state.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/reflex/state.py b/reflex/state.py index 781fecdfe..8e1f40fa4 100644 --- a/reflex/state.py +++ b/reflex/state.py @@ -1047,7 +1047,12 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow): for prop_name in self.base_vars: if prop_name == constants.ROUTER: continue # never reset the router data - setattr(self, prop_name, copy.deepcopy(fields[prop_name].default)) + field = fields[prop_name] + if default_factory := field.default_factory: + default = default_factory() + else: + default = copy.deepcopy(field.default) + setattr(self, prop_name, default) # Recursively reset the substates. for substate in self.substates.values():